In older versions of Flow, creating an empty object (eg. const test = {}) resulting in an "unsealed object" type, which had weird quirks and wasn't typechecked as closely.
The new version of Flow changes this behavior. This diff addresses those changes, mostly by introducing types to {} declarations. It also fixes issues that were surfaced after typing the unsealed objects.
NOTE: CI will fail on this diff. I considered the possibility of fixing Flow errors BEFORE upgrading Flow, but it wasn't possible... in some cases, the fixes to support the new version of Flow caused errors in the old version. I could have hidden these type errors with $FlowFixMe lines and then later revert those, but that seemed like too much busy work.
Depends on D9691