* Create a nwe AddressAndMapLocator which abstracts out the behavior of
selecting a location
* Fix the overlay causing render errors on the MapLocator by getting
rid of the overlay and just using a lock indicator
* Fix MapLocator zooming in to the wrong place by not framing the
markers
* Remove Latlng from platform and just use Location with optional
accuracy
* Use nested types with form-encoded POST
* Fix styles on water report page
This involved moving a lot of stuff to the platform layer since I don't
want event interfaces leaking out.
Also this includes a fix to the user authentication which I had
previously broken by making a platform-layer user object independent of
the database layer.