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 will read and write the config twice. Use `read_config` / `update_config` instead.