Simplify how Item is updated during a claim

A SQL expression is used to make sure that
`xmas.events.models.Item.quantity_claimed` is updated atomically. This
form of the expression is easier to read.

The same change is being made to `Item.unclaim()` as well.
Add additional tests for Item

These tests should round out the tests for `xmas.events.models.Item`, at
least until some of the methods are updated to raise exceptions when
invalid operations are performed.

In addition to putting additional methods under test, the factory calls
setting `quantity_claimed` to 0 are being updated to remove mention of
the field. Since the claim occurs after the items have already been
added to the database, `quantity_claimed` will already have a value of
0.