Added recognition of Safari
Re-factored the tests
Implemented device recognition
Re-factored the implementation and tests
Extracted the JS polyfill