Fix handling timedeltas in use_nonce().
OpenID: make nonce creation atomic.

get_or_create() is pointless, non-atomic thing. Instead, just try to
create the nonce and catch IntegrityError.
Add tests for *OpenIDStore.use_nonce().
Add uniqueness contraints to enforce one *OTP device per user.
Make otp_init() race condition safe.

A race condition in get_or_create() may have resulted in two devices
created per user. Now we guarantee only one. Not that it matters real
much...
Make SSL cert auth user creation race condition-free.
Merge pull request #62 from mgorny/get-or-create

Replace get_or_create() with IntegrityError checks