Change LocationView from event-based to promise-based

Refactor LocationView to render subviews based on the outcome
of promises instead of events. Makes the code much easier to
reason about.

Also refactor LocationProvider such that if the browser does
not support geolocation then getCurrentPosition simply returns
a rejected promise. Eliminates the 'isAvailable' conditional that
was previously called before making a call to location services.
Refactor method name
Remove obsolete code from LocationView
Remove most event-based code from LocationView

Moving to promises has made most of this code unnecessary. Remove
event code and tests.

Also change LocationProvider to return the raw address object
instead of a Backbone position object.