Interface Refactoring

This PR-

* creates a Stash\Interfaces namespace, 
* puts the DriverInterface into that namespace,
* creates the PoolInterface and ItemInterface interfaces and has their respective classes implement them, 
* and adds a series of new DriverExtension interfaces that will be used to expose caching system features to Stash so it doesn't need to emulate them.