Refactoring User

- adding 'role' as a field
- only one constructor, parameterless
- adding `withField` methods for setting the other fields