Update JSON input UI

- Input fields are populated directly via underlying JSON properties
(e.g., behaves in a more Fluxy way)
- Statically inferred PlanOut input variables automatically appear in
the inputs as nulls. If they get removed, and the nulls haven’t been
changed, they will also get removed
- Input fields resize with the height of the JSON field