WIP: Functional tests

Fixes #25.

- [x] Setup intern
- [x] Test unauthenticated index
- [x] Test sign in
- [x] Create mock device that responds to commands
- [x] Bootstrapping script (Phony bootstraps itself by inserting records into the db)
- [x] Test ring
- [x] Test lock
- [x] Test erase
- [x] Extract constants
- [x] Add tests/* directory to JSHint/JSCS Grunt paths
- [x] ~~Attempt to make tests DRYer with `before` and `after` functions.~~ (optimization for follow up PR)
I'm mildly indifferent. I kind of favor the constants so we have the flexibility to change configs in the future, but it probably isn't very likely that we'll do that for giggles.

![](http://media2.onsugar.com/files/2014/03/18/846/n/1922398/5fa00bb58c972b69_Whatever.gif.xxxlarge/i/just-pick-schools-youve-heard-before.gif)