jshint is run on tests now, moved some tests over to mocha BDD format

A few changes here:

- made 'npm test' run jshint on tests as well
- migrated a number of tests to mocha's BDD style
    - added some predefines to .jshintrc for this
- fixed a whole bunch of formatting issues in the tests (as per jshints demands)
- partially reworked server test to run more asynchronously

I know it's kind of a big commit, but its all in the tests and I think this sets us up for better testing in the future.