Add application state to appropriate components

The application state is summarised by:

- available locations
- selected location
- selected tide level
- tide levels for given location/tide level (from ajax call)

Note that there is only one location and the form is not currently editable.
Allow modifying tide level input box

Completely unconstrained, but demonstrating the up/down flow of
information in React.
Validate that inputted number is a float and round

Note that we allow the input box to take any valid number value, but we
trickle down the *rounded* version of the number.

So the input might say "9.234" but components in the results box will get
"9.2"