Remove BBConfig#api_hostname

Was transforming config to fog representation but wasn't being used
as well as being a heavy weight.
Replaces write_config_file with save

Cleans up the names and removes the now unused #finish method since
saving the tokens and the config are two independent actions..
Uses accessor to set default client
Starts to isolate config (file) from object

We want to mark the config object as dirty when it is changed so we need to cut
down on code directly changing the Hash
Adds dirty tracking to config to reduce saving

Whilst basic, this allows the #save method to be called in the post
block but only updating the file when a change has been made.

Problem is it is far from transparent and the exposed Ini object can
still be modified and #dirty! missed. This can introduce issues later.
Adds accessors with dirty flag for core settings

The Ini object does not understand the new concept of the config being
dirty so we want to reduce the number of direct accesses as much
as possible.