Refactored authentication.

* Moved all authentication logic to a new folder /authentication
* Based the authentication on passportjs.
* Started implementing JWT instead of a custom format token.
Finished auth refactoring for now.

* API methods can now be protected using JWTs.