Enables passing config to Api.conn(ection)

Api.conn is referenced inside instances of Brightbox::BBConfig which
meant certain commands could fail when the instance and the global were
different. Global values leaked into the instance and caused incorrect
lookups or overwrote the wrong tokens.
Changes argument passed to ConnectionManager

Rather than relying on the global $config we simply pass it in instead
of the result of the #to_fog call.

Also the specs are now more focused on if the correct type of connection
comes back. The presence of "account" in the config is not really a
concern as long as the configuration returns #account.
Removes major uses of global $config (with issues)

This removes the remaining direct uses of the $config global to better
isolate the parts of the system to cut down on leaking data.

Unfortunately Brightbox::Api.conn still relies on "something" being set
so the @@configuration global is now taking this role and must be
initialised in the commands or the specs for the "model" level code to
work.

A better approach would be using models via an established service as
fog does or having to pass the service connection in.

Replacing the global causes the Brightbox::Account (Api model) specs to
fail because the recordings are now invalid but won't record again.

They have been marked as pending.