Check type well formedness for top level function where constraints
Summary:
We forgot to check type well formedness for top level function where constraints, e.g. code like the following would be accepted:
```
class G<T as arraykey> {}
function foobar<T>(): T where T = G<null> {
invariant_violation('');
}
```
Specifically that `G<null>` segment ought to error, as we're violating the constraint on `T` in `G`.
Reviewed By: vassilmladenov
Differential Revision:
D34408891
fbshipit-source-id:
4195f4e80efe854fe171c08c578c25e7f169df13