Add controlled Grid component

This is the first step towards pulling the shared logic for rendering a
grid out of both the EcosystemGrid and the GridPreview into a controlled
Grid component that both will use.

The next step will be to replace the grid logic in EcosystemGrid with
the new Grid component.
Replace grid rendering logic with Grid component in GridEcosystem

There were several places that the Grid component had logic or styles
specific to the 'GridPreview' component, and those are cleaned up as
well as adding the props needed for use in the EcosystemGrid.