Prevent race condition which allows multiple users to be created.

closes issue #1834
- Added an integration test which attempts to add multiple users asynchronously.
- Added closure to User.add()  which holds a state variable to determine if a user has been added.
-- This will NOT work in a multi-process or load-balanced environment as it depends on the current process state.