MOD-56: Users, Roles, Authentication, and Authorization

This PR comprises a lot of work gone into building a model for "users" in the system, allowing them to authenticate via OAuth 2, and enabling them to make secured API requests.

Major changes here include: 

- Installed multiple Spring Security plugins making up the OAuth and resource security framework
- Wrote a custom `LoginController`, which is what clients use to begin OAuth authentication. `LoginController` logs in `User` objects once they are verified using an external OAuth provider, such as OpenMRS ID. It creates user new users if necessary.
- Wrote an `OpenMrsIdApi`, allowing Spring Security OAuth to authentication with OpenMRS ID
- Secured many REST resources. For example, a user must be logged in to create a new module. A user must be a maintainer of a module to edit it or upload any new releases.