Split constructor arguments out, removed "string" key

The constructor is no longer there- instead there is a setDriver and
setKey function.

The Item class no longer accepts a string for a key, it must be
provided with an array. This was done for efficiency (since the Pool
class already converts it to an array) and to make namespacing easier.

This does break previous API compatibility, however it should have
minimal affects as these functions are all used internally (typically
by the Pool class when generating the Item).
Adding namespace support to Pool

This also updates the Pool class to use the new API for Items.
Updates Test Suite

This reflect the new API changes that were made.
Formatting
Pool::Flush is now namespace aware

If a namespace is set flush() will only clear that specific namespace.
Otherwise the entire pool gets cleared.
Altered unsetting of namespace for hhvm compatibility
Improved test coverage
Additional test coverage
More Test Coverage
Formatting
Removed cache from code coverage

The xcache extension does not run on the command line, making code
coverage impossible.
Merge pull request #149 from tedivm/namespaces

Namespace Support