models: Request testing if builds changed

The comment gets it right, but the code was always requesting testing,
even if builds hadn't changed.
updates: Better change the request on new/edit

The previous code could end up setting the request twice, one of which
directly modifying the attribute, without going through the set_request
method.
updates: Refuse some changes for locked updates

Updates are going to be locked when they are part of an in-progress
mash.

So when they are being mashed, we really shouldn't let people change
the builds in an update, or change its request.
tests: Ensure edition of locked updates
Merge pull request #57 from bochecha/lockupdates

Lock updates