Merge remote-tracking branch 'toolness/issue-121-api-claim' into v2.0
Merge remote-tracking branch 'upstream/v2.0' into v2.0
Merge remote-tracking branch 'upstream/v2.0' into v2.0
changing the optional status of a few fields
merge conflict
Merge pull request #145 from cmcavoy/more-optional-fields

More optional fields
The model now supports badges with multiple categories.

The approach probably isn't very efficient, but it was the easiest
way to add the functionality given the tight deadline.

This doesn't add any route/view support for the new functionality,
however. That comes next.

Soon, #143 will be crushed.
added routes/views for multi-category badges.
added a TODO; we define dedupe() which seems exactly like _.uniq().
normalize category information before badge validation.
Merge pull request #148 from toolness/issue-143-multi-category

Badges can have multiple STEAM categories
added a test to ensure that the badge.assertion route works.
Split out definition of routes on an express app into routes/index.js.

This will make it a lot easier to test out the actual routes and
their integration, rather than individual middleware or endpoints.
Removed hash, assertion from BadgeInstance schema. Assertion endpoint works.

However, the badge URL doesn't yet work, so the new routes test suite I
added currently skips b/c I want to fix the badge URL and then add to the
test.
Got /badge/meta/:shortname and test working.

Now need to make sure its issuer and criteria URLs are valid.
Added /program/meta/:programId endpoint and test.

Also a criteria endpoint test.
Refactored tests/routes.test.js to make it easier to read.

This, and its previous commits, resolves #147.
/v2/user now provides a 'badges' obj w/ shortname keys.

Fixes #151.
Changed 'time to complete' to hours/days/weeks/months/longer.

Internally we store 'longer' as 'years', since this makes more sense
in isolation (e.g. if someone just sees 'longer' w/o seeing 'months' before
it, they'll wonder what it's longer than).

Fixes #149.
cleared out a bunch of env vars in tests to ensure they work properly.