Only load instances in instance switcher when necessary

Only load instance when the user logs in or out, or moves at least 100
meters from their previous location.
Reformat code
Use ViewHolders for improved performance.

Doing findViewById can be a performance hit, so caching the view in a
class is considered a best practice, and something we are already
doing for the SpeciesAdapter
Fix Lint