Change signature of user models init function

Using a signature on init that differs from the SQLAlchemy
default signature causes problems with factory boy which assumes
default arguments for the init function.
Adding integration tests with py.test and factory_boy

- Add test packages to requirements
- Add factory_boy factory for User model.
- Add tests for all methods on the user resource.
Adding section about tests in README