Basic tests
Adds unit tests, updates implementation to include references to the W3 spec
update travis.yml
Py3 compatibility