Mongoid error on app.save results in gear counts being out of sync

If Mongoid returns an error during the initial save (due to a validation error, etc) then the user gear counts are not unreserved and they will have an out of sync error.  Added failing test case for this.

@abhgupta review please