Added test framework, refactored platform (browser) support to make it testable

This pull request is based on the changes of #13 - merge that one first.
I've added a test framework ([Buster.JS](http://busterjs.org)) and integrated it into the Grunt script.
To make the library testable (under node), I needed to refactor and abstract the window/navigator access.

Doing so I extracted two notions:
* update strategy (one for requestAnimationFrame and one manual)
* platform access (WebKit and Firefox)

Apart from being testable now, any platform/browser specific stuff is now handled within the respective class.