Authenticator to handle OAuth interaction

* Implement an `Authenticator` class that interfaces with Namely's OAuth service
* Document public methods
If we can use named parameters, it would specify also in code (with proper exceptions) what's defined in the comments.