update tests
- use istanbul for code coverage
- add jshint rules
- add grunt to run tasks