Make authentication behaviour less surprising:

 - Split and move existing blocks of comments to provide a bit more
   context into the hoops that the constructor has to jump through to
   authenticate.
 - Make authenticated? helper return true || false,
   not true || raise Unauthenticated, for a more consistent user
   experience.
 - Add comments explaining what various base methods do, and why.
 - Clean up per Rubocop.