[#1117] Add new_tests dir with first new logic tests

Eventually (before this branch is merged into master) new_tests should
become tests and the current tests should become legacy_tests.
[#1117] Add new tests for updating user names and passwords

...and also for what happens when you call user_update without a valid
id.
[#1117] user_update don't crash on non-string name

Don't crash if the user tries to update their user name to a value that
is not a string (which they can do, using the API)
[#1117] user_update: don't crash on non-string password

Fix a crash that happens if the user tries to update their password to a
value that isn't a string (which they can do, using the API)
[#1117] Typo
[#1117] Make various improvements to test_update.py

- Add some notes to the top of test_update.py about what I'm trying to do with
  it, these will end up in the testing guidelines
- Make the static test data read-only
- Rename some of the test methods so that they're all test_user_update_*
- Add test_user_update_activity() test
- Other small tweaks
[#1117] Add some more user_update invalid password tests
[#1117] Fix some bad indentation
[#1117] Add user_update custom schema test
[#1117] Add test for user_update's defer_commit option
[#1117] Add draft testing coding standards doc
[#1117] Add a few new-style tests for user_update auth
[#1117] Never return reset_keys in user dicts

Like the user's password, there's never any reason for a user dict to
contain their reset key (even if the user dict is being generated for
the user herself or for a sysadmin)
[#1117] Add docstring and unit tests for ignore_missing validator
[#1117] Add another ignore_missing test
[#1117] Add some asserts to ignore_missing tests
[#1117] Tweak a unit test
[#1117] Combine three unit tests into one
[#1117] Improve a unit test

Add some more realistic data and check that it doesn't get modified.
[#1117] Move some unit test code into helper functions