Extracts default API endpoint to constant

Was bad practice having it defined in some many places.
Stubs default API endpoint in specs to devs

Rather than pointing at the real API endpoint and having to pass arguments in to
a number of specs to get them to use a development endpoint, we now isolate the
endpoint under tests.

Devs should point api.brightbox.dev to a development endpoint to record any
updates.
Adds some config helpers
Updates blank config tests more accurately
Make errors in client checks clearer

If a config is not available, `selected_config` is nil so NoMethod errors were
surfacing. Now raising a ConfigError.
Ensures default account returns nil with no config
Fixes default account code

The config itself requests a list of accounts to select the default rather than
relying on the Api connection. This Api connection is broken when adding a new
config.

We use the config details as given to do a standard fog call to get the listing.

Unfortunately this appears to create a large amount of VCR churn
Tests and fixes for missing config file

Certain parts of code using selected_config just do not function safely when a
config file is missing.

Of course adding a config for the first time leans on this code to find a
default account and breaks.
Ensures we update the config when removing client

Should just be able to mark as dirty and then be saved at the completion of the
command.