Partial implementation of external browser setting

Still needs clean-up and method for actually opening links based on choice.
More progress on selectable browser

Cleaned it up visually and made it degrade gracefully if the browser was deleted.
Adjusted settings page layout a bit
Info and about buttons stand out against light bg

The info and about buttons float over the images on the My Uploads page. When floating over light images the buttons would blend in too much and be difficult to see. Added a slight dark shadow around the buttons to provide some visual contrast.
Refactored the browser helper object

Easier to manage weird url schemes now without the need for additional code logic.
Re-added entries which disappeared from storyboard
Removed the web view controller from storyboard

It was unused
Made the browser selector use a table view

Also made it slide the "Open Links With:" label beside the selection when the selection is made. Also shifts the selection to the top when the settings page appears.
Added opt-out for metrics tracking to settings

Will need to check statistics to make sure tracking opt-in and opt-out are being recorded. I believe they should be.
Refactored BrowserHelper's getInstalledSupportedBrowserNames
Refactored opt-out to use log:event:override:

Also changed "Metrics tracking" to "Usage Reports" and added "Send usage reports to Wikimedia to help us improve the app".
Abstracted logging and browser prefs to CommonsApp

Keeps NSUserDefaults stuff less dispersed.
Removed redundant "Safari" fallback checks

No longer needed because in "application:didFinishLaunchingWithOptions:" the call to "[[NSUserDefaults standardUserDefaults] registerDefaults:" ensures the value will be "Safari" by default.
Fixed alpha sort issue with browser list

Had been swapping the selected browser with the first browser in the list to cause the selection to appear on top, but this caused the items below the first one to no longer be alpha sorted. No more swapping - the selection is now removed and re-added to the front of the array thus leaving alpha sort of remaining browsers correct.
Made web and license buttons open in preferred browser
Fix for browser list crash

Was crashing occasionally when laying out list of detected browsers.
Fixed bug with app suspension and browser list

Now it should properly update the list and the selection if the selected browser is deleted when the app is suspended.
Commented redundant call to initializeApp

Line 57 just below the commented line does the same thing.
Merge branch 'optOutForLogging'