Bug 888363 - Fix default browser activation. r=jimm

Extra notes:
GetModulePath has no changes, it is just moved up so it can be used earlier.
GetDesktopBrowserPath was moved into the class because it needs to use a member there.
GetDesktopBrowserPath implementation has changed, so please review it.  Also its comments header is new and explains some stuff.
IsTargetBrowser is no longer used because we instead use 2 other boolean values set on the SetTarget call.