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.