Return null for empty properties

When an property of the model exists but is not yet initialized, it
should return `null` (instead of `undefined`). This way a distinction between
unknown and empty properties can be made.
Set initial model values as dirty

When initializing a model object with providing a hash of values, the values
were not flagged as dirty. Now they are, by using the created setter, instead of
directly writing to the @data of the Model.
Add direct written attribute of model to dirtyKeys

Even when a attribute is directly overwritten via `writeAttributes`, it should
be marked as dirty. This is (a.o.) needed to add the ID to newly created
models.
Use default flag to mark directly written attribute as dirty
Test multiple adapters

Perform each of the tests for every adapter.
Fix typo to @saveFinished function call
Add `update` action to mysql adapter
Add `afterCreate` and `afterUpdate` events when saved and updated.
Make tests pass for mysql adapter

Walked through the source to let the tests pass for the mysql adapter,
and partially the Redis adapter. This is for issue #5.

For this to work, some adapter methods were added to impelement more of CRUD,
as requested in #2 and #3.

Still to do: update and delete methods for the Redis adapter.
Merge pull request #6 from rvlasveld/tests

Tests for mysql adapter