Updated models and migrations

All have validations. Seeded database. Dummy users' passwords are 'password'.