Do not merge: low power mode

Feel free to test.

Do not merge as it needs more comments and some refactoring/cleaning before integrating the main repository.
This code is called from two places, both occurring on the UI thread (so no concurrency issues here):
- from `onResume()`: once the first time the activity is displayed, then necessarily after a corresponding `onPause()` which takes care of unsubscribing;
- from the pager callback at page change, given that the callback should not be called twice for the same page and is not called for the initial page (hence the extra `requireGeodata = pageToOpen ==1`).

I could put this explanation in the code, but indeed it is safer (in case the view pager behaviours wrt the initial page changes for example) to unsubscribe an already unsubscribed subscription, so I'll just do that.