Fixed challenge prize logic to avoid double paying
Fixes #1959: petCount was only being updated...

in groupsCtrl.js. This made profile.petCount blank unless the current
user viewed himself in chat. I put the code to set profile.petCount into
userCtrl.js.

Note: petCount (not profile.petCount) is still always equal to the
current user's pet count. There is probably a better solution than this,
I just don't know enough about AngularJS to make it.
restore NaN history entries (@djuretic thanks!)
remove math updates notif now that things have settled down a bit (most
updates now should be subtle). @wc8 @sabrecat let me know if you think
this is premature
add GET /api/v2/content which lists all item definitions @magicmicky
Quests: initial Bosses WIP - invite, accept, reject, etc
Quests: hurt boss via score method, refactor chat function, change all content.*.name to content.*.key for consistency
quests: add abort feature
bosses: no models, performance improvements
Fix unit tests
quests: add collection quests, incl. polar bear pt 2, and quest arks, and achievements
add missing-gems migration
rename user.party.tally => user.party.progress
bosses: pretty things up amongst the modals, etc. Move rewards to a
directive so we can share it. Add dialog on quest-completion using
user.party.quest.completed flag
bosses: misc small bugs
bosses: bailey
Merge branch 'bosses' into develop
bosses: habitrpg-shared#develop
Evil Santa => Trapper Santa
API: safe-guarding against POSTing to create 3rd-party tasks with no {type} value