Common object storage frontend that supports
dictionary-style access, object serialization
and compression, and multiple storage and caching
backends.

Currently supported storage backends are:

* Amazon S3 Web Service
* Berkeley Source Database
* Memory
* Filesystem
* Firebird
* FTP
* DBM
* Durus
* Microsoft SQL Server
* MySQL
* Oracle
* PostgreSQL
* SQLite
* Subversion
* Zope Object Database (ZODB)

Currently supported caching backends are:

* Memory
* Filesystem
* Firebird
* memcache
* Microsoft SQL Server
* MySQL
* Oracle
* PostgreSQL
* SQLite

The simplest shove use case is:

from shove import Shove

store = Shove()

which creates an in-memory store and cache.

The use of other backends for storage and caching involves
passing an module URI or existing store or cache instance
to shove following the form:

from shove import Shove

<storename> = Shove(<store_uri>, <cache_uri>)

The module-specific URI form is documented in its module. The
URI form follows the URI form used by SQLAlchemy:

http://www.sqlalchemy.org/docs/dbengine.myt#dbengine_establishing

shove fully implements the Python dictionary/mapping API:

http://docs.python.org/lib/typesmapping.html

Differences between 0.1 and 0.1.1

- updated to work with SQLAlchemy 0.4.x

Differences between 0.1.1 and 0.1.2

- updated to work with boto 1.x

Differences between 0.1.2 and 0.1.3

- better clean up of file handlers for filesystem based storage
  and caching (per Larry Meyn)
  
What's new with 0.1.5
 - Cleanup
 - Bunch of suggestions from Kevin Dangoor