fix TestUsers.delete_all infinite loop detection

User hashes can change across list() invocations, so that test_user_list may not equal previous_list, even if the logical users are identical.  Mapping the user hashes to the ids fixes this.
Add spec and update changelog
Time to go 1.9+