Refactors BBConfig internals

This break up some of the combined methods to cut down on side effects
and give a bit more control over the internals.

BBConfig#dir would create the directory if it was missing and we could
not access the path without grabbing the instance variable.

This has been replaced by #config_directory which returns the path.

BBConfig#config still behaves as before, creating the directory if
missing and loading the file if available.
Uses File#mkpath to create cache

Rather than failing when the config folder doesn't exist, this creates
the full path recursively.
Fixes code related to config specs

* Changed the option name and missed the global change in the suite
  causing it to revert to the default
* File#path replaces #to_path because it was erroring when file was
  closed
Merge branch 'isolated_config'