models/login: Refactor into smaller function
test/models/login: Add test coverage of hashes
Add primitive file uploading capabilities