Badge system modifications.

* Computed property macros
* Explicitly set model instead of calling _super
* Return self from Badge.save()
* Period notation for lookup by string
* Use `render_serialized` instead of `render json: …`
* Don’t increment grant_count if UserBadge creation fails
* Restrict user_badges route to index, create, destroy
* Change order of user_badges index to (user_id, badge_id)
* Specs: use `let!` instead of `before` blocks