* add a wrapper around `sqlite3` to enable connection pooling across
multiple threads.
Most tests now use a in-memory database which speeds things (slightly)
up. The database wrapper is now uncoupled from the actual database
connection.
* split cache framework from core.Mixin into a separate package
`isso.cache`. The dependency on `werkzeug.contrib` has been removed to
ease a possible transition to a different web framework later.
The default cache uses SQLite3 now (unless Isso is run from uWSGI).
While it may sound like a Bad Idea (tm), it's much more efficient than
per-process python datastructures. The SQLite3 cache is SMP-capable
and fast for read-heavy sites.
SQLite3 may fail due to a corrupt database for concurrent read access
from multiple processes. The database is actually not corrupted, but
the connection is stale. As a workaround, limit process number to your
CPU count or wait until a "real" backend such as PostgreSQL is
available.
* use a single default configuration, share/isso.conf
* try to use config.new in some tests which are decoupled
A few tests now depend on `isso.dist` to show that they (or the used
objects) have too much dependencies and need to be rewritten.