Updated MirrorChooser to order mirrors based on location and success/failure
- added a new MirrorChooser class that orders mirrors based on location and on success/failure count
- added preferences to allow users to toggle local or remote mirrors
- added preferences to check and increment success/failure count when connecting to mirrors
- fixed a bug that caused an exception when the app attempted to show an error message with Toast
- refactored the Mirror class to reflect the change from location to countryCode