Remove Tag offset data from the block.

There's a dependency on writing the metadata before
the the block so that the block knows where in the metadata
file it's tag data is.

Easier to use a metadata index file.
A few changes for the sake of I/O

Block gets an Interface, IBlock, defining a minimum set of
require properties for any block.

IDeserialize<T> defines the Read(BinaryReader) method to return
the object, either the mutated object or a new version.

Chunks do not store Entity information anymore, users will need
to serialize their entities separately and provide memory storage as
required.

IEntity is gone as nothing requires it.

Metadata will be serialized to a separate file. (Work in progress)
Fix a typo.
Remove IEntity from project
Add missing file for Map tests