MapScreen User Goodness

Initial PR, don't merge yet... no tests, but I'm not sure if I can test this reliably on Travis simply because the first time it requires user interaction to accept the alert that asks to display the user's location on the map.

Adds a few methods:

`show_user_location` Does what it says.
`hide_user_location` Does what it says.
`showing_user_location?` Bool as to whether the location is being shown on the map or not.
`user_location` Returns a `CLLocationCoordinate2d` if the user is being shown on the map, or nil if not.
`zoom_to_user(radius = 0.05, animated=true)` forces the user to be shown on the map if not currently shown, then zooms into the user's location.