This is the first step in breaking some circular type dependencies that
we have which are preventing us from breaking the language service into
separate packages. The goal here is to move all shared types into the
types module, which should itself have no dependencies on anything
inside the language service.
- Declare `Range` and `Position` as interfaces.
- Annotate that the `Range` and `Position` classes implement the
- Switch to property assignment syntax so that Flow won't complain about
covariance vs invariance.