Add grid view for environment pane

This change factors the embedded `ScrollingDataGrid` out of the formerly monolithic class `EnvironmentObjects`, and replaces it with an new abstraction, `EnvironmentObjectDisplay`. There are two implementations of `EnvironmentObjectDisplay`:

- `EnvironmentObjectList`, which contains the existing view of the environment.
- `EnvironmentObjectGrid`, which contains a new view that shows the environment as a grid.

The change also includes the environment selector, and code to support listing and switching between arbitrary environments.