Move feature detection into own modules

This reworks feature detection just a little bit to move the code into
their own modules so they can be seperately tested.

Fixes #30 by moving the feature detection to take place at the beginning
of the document instead of the end.

Fixes #29 by waiting until Syn is finished loading before removing
window.__synthTest. This is interesting bug, it appears (which I cannot
    track down definitively) that the issue is that Firefox isn't firing
the `javascript:__synthTest()` until after the elements have been
removed from the page.