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.
Remove Object.create that seems to foul up https.request call in node 0.10.6
Merge pull request #103 from toolness/theme-framework

Added a rudimentary theming system.
updates
Moved all webmaker-specific stuff into themes/webmaker/.

It's not really a proper theme because I just copied all public
views in there. Had to do this b/c it was difficult to separate out
what was webmaker-specific from what wasn't, especially since the
webmaker css uses its own grid system and such. Alas, we'll have to go
back later and fix things up.

Now the public views just use generic ol' bootstrap, but are thus
in prime condition for theming.
Merge pull request #106 from toolness/theme-framework

Moved all webmaker-specific stuff into themes/webmaker/.
Merge remote-tracking branch 'upstream/v2.0' into v2.0
added fields to program and issuer, moved validator into util
CSOL theme

Added style for CSOL theme.
To view change themeDir var to 'themes/csol'
CSS extra lines remove
Merge pull request #105 from stenington/104-econnrefused

Fixes node v0.10.6 ECONNREFUSED error
Merge pull request #108 from mgballard/v2.0

Basic CSOL theme added.
Additional data fields programs
Frontend & models for (some) extra badge fields

This is still missing the prereqs stuff, but this adds age range, time
to earn, category and badge type to the backend models and the
frontend. This also had some refactoring of the badge `create` and
`update` endpoints to pull out common code.
removing model changes so we can at least grab the DRY'ing up of that util function
Merge pull request #109 from cmcavoy/update-data-fields

d'oh
Protect against nulls.
Add images to issuers.

This also does a lot of work to simplify things on the backend. Instead
of processing programs at the same time we try to process issuers, it is
a separate step. It's (arguably) a worse user experience on the
frontend, but A) the UX is in flux right now so we don't know what it's
going to look like anyway, and B) it's *way* simpler on the backend.
Can add and edit programs again.

This time with more images and other fields and stuff!