Events now emitted through per-editor mediator

Rationalised mediatedevents into a mixin. Changed some
names to be more friendlier.

Ported to the new Browserify architecture by @dwb
Block.toData now just serialises; Block.save just saves

Previously, Block.toData would save data too, which is an
unexpected side-effect.
Block.toData is now Block._toData as it's private
Rename Block._toData to _serializeData

I think this is a better name.
BlockStore.getData is now BlockStore._getData as it's private
Rename saveAndGetData to getBlockData

Saving feels like implementation detail. getData() is the
main public method for getting the data and in most cases
users will want that data to be saved in the store as well.
Fixed spelling in tests
Renamed saveAndReturnData to getData

Hopefully this is more descriptive.
Remove setAndRetrieveData because it's not used anymore
Add some comment docs for BlockStorage methods
Prep for the 0.4.0 release
Update Uglify
Bundle in es6-shim but leave es5-shim as optional

Also added a note to the documentation.
Fixed indentation in block.js