Calculate ultimateGear achievement on user.save

This does several things:
- Moves the calculation of the ultimateGear achievement into its on
function on user.ops.
- Fixes bug where ultimateGear was not awarded if user wasn't wearing
their class gear at the time of item purchase.
- Adds content.classes and content.gearTypes which we should start using
elsewhere.

Fixes #2232.
remove console.logs, move calculation to buy
fixed bugs with ultimateGear. I hate Coffeescript and LoDash a little now
only compute ultimateGear if item is last and the user does not already have the achievement
Added tests