Expand abilities of Cache::config()

Allow various types of configuration to be provided. The new variants
allow for simpler dependency injection and still afford configuration
files.

Reconfiguring an adapter is now not allowed, as the configuration
changes were never propagated to the adapter. This results in a silent
failure that is hard to detect.

Move/remove tests around to make sense with the new API's
Update failing cache tests.

Remove 'engine' from the settings in each engine. It provides no value
and is never referenced outside of tests.
Cache should remove old settings when upgrading settings

When converting engine => className the old key should be removed.
Update Log::config() to support more formats.

Make Log::config() accept the same data as Cache.
Fix tests that were relying on re-declaring cache/log adapters.
Remove Cache.disable from Configure.

Give it a set of named methods on Cache. This configure value always
felt out of place and fits much better with Cache's feature set.
Use the correct function to rm directories.

Use correct functions and fix failing tests on travis.ci. Directories
were being left behind after tests were complete as parent::tearDown()
restores debug which allows directory to be created in teardown. Shuffle
parent and clear() calls to prevent this.
Add tests for enable/disable/enabled
Fix coding standards errors.
Merge pull request #1534 from markstory/3.0-cache-log-config-changes

3.0 cache log config changes