Move validation into model

Reinforce db_create with new validation
Extend validates into seperate module

Now also simple validation of usernames and passwords
Tests!
Basic tests to cover username & password in app.validate
Fix bug exposed by testing!
Merge branch 'user-model-validation'