this isn't right.
moving stats work to async, adding user count to stats page
some feedback from @brianloveswords
moved user total count into the model, added a test
moved badge statistics to badge model, added a test
First pass at user settings page
Stub controller for saving user settings
Adding routes for settings page
Adding settings page link to nav bar
Run qunit tests via phantom in 'npm test' rather than .travis.yml.

We also throw a helpful error if phantom isn't found.
split out each qunit suite into a separate tap test file.

this makes it easier to test the suites individually from the command-line,
and also gives better feedback when running tap tests (rather than one
big long delay when running all suites, you get feedback for each suite).
Fixed "saving a model causes its props to be JSON serialized" bug.

This was documented in the group model tests and worked around in the
badge controller tests, and generally caused the behavior of models to
be highly unexpected.

This fix works by never mutating the model when preparing it for
the database.
rebase, plus the fixes for #491
changed the way the doc bits are in there, using return...like a boss
forgot a return
remove api-easy as a dependency; use express cookie session instead of pkg.
initial conversion of issuer-test.js from api-easy to tap+request. messy.
'Page Not Found' template
'Not Found' middleware
Adding 'not found' middleware to app

This only seems to work by adding the `app.router` line, which seems to exist in other examples I've found, but not in our setup.