e/OS specific location fixes
Description
On e/OS MainActivity.onRequestPermissionsResult was not being called, which led to location requests spinning forever. I switched to use the same pattern we use for notification permissions and it seems to work on e/OS now!
This MR also subscribes to both the fused provider and the GPS provider, and prefers the fused provider as long as it provides fresh locations regularly.
Additionally, it checks to ensure that location permissions are granted prior to starting nav. Ferrostar unconditionally requests location in the navigation viewmodel, so it's important to ensure we have this permission prior to starting nav, otherwise we get a hard crash. The user only has to press the Begin Navigation button once, and we automatically request permissions as necessary then begin nav. I also simplified a lot of the code in the DirectionsScreen to make it easier to follow where exactly nav is being started.
Issues
Fixes #13 (closed)