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