Added a rudimentary theming system.

This is based on the thing I did in
mozilla/aestimia@57a8e75160f05468e0f8763cf7a6bc8330b027d0.

Themes are directories that contain `public` and `views` directories.
The `public` directory is mounted at `/theme/`, and any templates in the
`views` directory override Openbadger's standard templates. Theme views
should use {{ THEME_ROOT }} instead of hard-coding '/theme/' into
themselves, though, since this root dir might change, or be hosted
on a separate static file server, etc.

CAVEATS:

One weirdness here is that template.js is responsible for theming,
and since theming requires extra express.static middleware, template.js
is now responsible for the serving of all static files--which sort of
makes sense, since the only reason we need static files is because
the templates reference them... But that might be silly reasoning on
my part.
Ack, forgot about themes needing to override root files like favicon.ico.

Now the `public` dir in themes is mounted at the root of the website,
and any files defined in it replace ones defined by the website, similar
to the way the `views` dir works. No more `THEME_ROOT` env var, either.
Merge pull request #103 from toolness/theme-framework

Added a rudimentary theming system.