First piece of offline mode

Support a soft offline mode. Use the app cache to keep the main app code locally. Allow the app to buffer responses locally in case we lose reception, then sync those buffered responses when reception is back.

To do:
- Better visual indication of online vs offline and of network activity.
- Friendly messaging to the user that they need to have some reception and let everything sync before they call it quits and throw their device into the ocean.
- More aggressively fetch/cache parcel and base map data, so the user can roam farther without reception or even start the app in a dead zone.

/cc @hampelm