Make Cache::write's $data param optional for multi-key writes.
Consistently support cache multikey reads/writes/deletes.

BC break - from now on cache adapter write/read and delete methods
will always get passed an array of keys or key/value pairs.

This BC break only affects cache adapters implemented outside the core.

All adapters must now support multikey reads/writes/deletes.
Adding multi-key docs to Cache methods.
Modifying cache adapters to consistently support multiple keys.

Updating documentation.
Adapting cache adapter tests to consistent multi-key support.
Fixing APC multi read and delete tests.

Tests weren't testing for reads/deletes through adapter.
Condensing some cache adapter tests.
Adding missing cache multi-write/read tests for adapters.
Formatting.
Allow storing `null` with memory cache adapter.
Make $expiry optional in Memory::write as in other adapters.
Return boolean in Redis::write when using multi-keys.
Return `null` not `false` if key does not exist in Redis::read.
Adding null cache storage tests.