Account lockout

This is a work-in-progress branch for implementing account lockout, as described in #801.  The first commit is a concrete API spec, for discussion.

Things of note:

* The `resend_code` endpoint has the usual oauth continuation mumbo-jumbo, in keeping with other email-sending endpoints.
* The `verify_code` takes both `uid` and `code`, in the same way that `recovery_email/verify_code` does.  I'm not sure this is a good idea since we will have to make sure the verification page as the `uid` available.  But it's unauthenticated so it can't take the `uid` from its authenticated context like `password/forgot/verify_code`.

@dannycoates @zaach @ncalexan f?
The lack of a public API may be problematic for Selenium testing the content server. To fully test the flows, I'll need a mechanism to force an account into the locked state. I suppose I could somehow hack around it by mocking in the XHR request, but that seems brittle. I could also manually load up the "/account_locked" screen after calling `client.resendAccountUnlockCode`, but that'll leave gaps in testing.