Switched to emitting events for before/after um events instead of
testing for functions then calling them.

I'm using LucidJS as an event library just in case I ever try to make
this work in the browser.

Added unit tests for all triggered events.

Wrote a mock db and moved several tests from the couch adapter suite
to the generic persistence layer suite. There's more work to be done
there.

Bumped the version number in anticipation of release.
Documented events in the readme.
Dead code removal: kill the last remnants of the initial redis attachment implementation.
Formatting tweak.
The levelup adapter now cleans up attachments properly.
Added unit tests to prove it. Or so I hope.

The default polyclay require no longer includes all the db adapters, so
you do not need to have them all built in order to use the package.
Right now you have to require the path inside the package directly.
I'll find some better way to do that.
Wrapped requires() for optional adapters in try/catch, so you don't need
to have everything installed.
Emit change events when attachments are changed.
Added unit tests for the events.
Remove an unused require().
Merge pull request #10 from ceejbot/evented

Add event emitters to models and emit some interesting events.