feat(schema, shared, api): move all types to shared, separate schema * schema is now stored in a separate crate to avoid dependency cycles * added note in README.md about handling unwraps
fix(api): check if user exists before hashing password on registration
feat(api): reimpl user registration