feature/authentication

Moving authentication module as-is from the original PR (#293). This does not include the implementation in the booking app because it wasn't finished and because this module's API could still possibly change.