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:
If we replace the keys `username` and `key` with `nil`, the other functions grabbing these keys don't know how to deal with this. Therefore, the only way to remove these keys is to delete them from the file. `update_config` does not allow keys to be *removed*, only *replaced*. So, AFAIK, this is the way to go at the moment.