Switching from protobuf to Entity Framework, etc.

- The disk-based code for protobuf code was cumbersome and weird.  EF
makes things so much more straightforward.
--- Again, the intent is that people can replace or augment my built-in
implementations of things so they don't have to get "stuck with" my
choices of technology for specific things.
- Also fleshing out the base implementations of chain storage.
--- IDisposable by default.
--- There are now two base classes intended to be inherited from:
ReadOnlyChainStoreBase and ReadWriteChainStoreBase.
--- The only overridable methods are protected and all guaranteed not to
be called by the base classes after being disposed.  I'm still thinking
about a solution to make sure we don't get disposed in the middle of one
of the "core" methods, without forcing full synchronization.