Add ability to deauthenticate

This PR adds the ability to deauthenticate (or logout) of the Hex client, which will remove all information from the config file, allowing other users to login.

It also adds the ability to flush the config file of all kays.

Thoughts?

Tests are included, and pass. All commits have been squashed with rebase.

:dancer:
This hides the `flush` key. Let's drop this task for now until we figure out a better way to include it.