Refactor / consolidate capability checks covered by parser and typechecker
Summary:
At some point during capability / context development, we added parser checks for some constructs like:
* Accessing static variables without `read_globals` / `globals`
* Writing to properties without `write_props`
The parser checks can be bypassed with `__IgnoreCoeffectLocalErrors`, but you end up still running into the typechecker errors. Given they're duplicated ... let's just nix the typechecker errors.
I've also backported one pattern the typechecker caught but the parser didn't which is doing something like:
```
enum class Foo: mixed {
mixed X = Bar::$baz;
}
```
The typechecker caught this is illegal, as enum class initializers don't have `read_globals`, but the parser accepted this code.
Reviewed By: chenmela
Differential Revision:
D37726100
fbshipit-source-id:
fce3a709ac1f37649d49e0828b3c73154e0c3323