verificate_code: Re-factor to reduce code path depth.

Change huge

    if x:
         ...
    return x

into

    if not x:
        return
    ...
Change verificate_code -> verify_code.
verify_code: Rename obj_id to data.

obj_id sounds like mongodb object_id and was very confusing to me.
verify_code: Don't overwrite verifications document.

Without $set, the pymongo update() function will replace the whole
document, so all data about verified codes were lost.

Also add verified_timestamp.
verify_code: further refactorings.

1) Remove old_verified lookup. This code never matched anything at all
   because of the overwriting bug fixed in 84cc1112aa880d34, and it is
   more robust to just always look for any user with NIN/mobile/email,
   regardless of if any such entry is found in the verifications
   collection or not.

2) Break out the remove-any-existing-X code to separate functions to
   reduce the size of verify_code and thereby increasing readability.
get_not_verified_nins_list: simplify and mend (?).

Greatly simplify this code, and fix suspected broken logic in it that
was probably hidden by the overwriting bug fixed in 84cc1112aa880d34.
Some more renaming and documentation.
Fix data takeover.

Properly remove data from other users in both eduid_dashboard and
eduid_am databases.
Make sure CSRF tokens don't nestle themselves into the DB.
Bugfix NIN lookup.
bugfixes to prior changes
Fixing bugs from earlier bug fixing.
move to eduid_msg 0.7.12-dev to resolve jinja version conflict
Merge branch 'form_data_handling_fixes'