browser-specific code refactoring

The bulk of the `if (BrowserDetect.isSomeBrowser()) { do something specific to that browser }` code has been refactored into browsersupport-browsername.js. That code is now accessible via `BrowserStrategy.methodName()`, which is mostly an interface but includes some base implementations.

This PR may not actually be ready to merge yet.  I'm not sure if it runs on all browsers, but I figured I should post it for peer review.