Add tests, add testem support, fix show/hide.

* Added an initial test suite
* Made it work with testem (`npm install -g testem; testem`)
* Fixed a bug in addClass
* Made show/hide better (unless I've missed something)

Re show/hide, when showing a previously hidden element, you want to restore it to the state it was in pre-hide. The possible states are:
* default browser value for the element type
* overridden default in stylesheets
* a previously set "style" property with `el.style.display = "something"`

Setting `style.display=''` restores either the browser default/the value in stylesheets. So the only thing we need to handle extra is a previously set style (if there was one) in `el.style.display`. I've done this by caching it on the element itself in `data-anddom-display`.