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.