Got variant dataspace to compile
Add argument to openFileInternal to choose format
Remove commented-out code
Add collection cout MVar to the engine and generateIdentifiers with it
Rename Volatile -> InMemory and Persistent -> External
Change the type of generateCollectionFilename
It doesn't need the ()
emptyCollectionBody can generate external collections
Revert adding bareFormat to engine
First implementation of peek, insert, ctors, update, delete, and some helpers for external collections
Draft implementation of external collections
Defined EmbeddedKV typeclass
Add WireDesc a to the Engine.

This is used as the WireDesc for external collections.
Use the Engine's valueFormat in external collections' endpoints
Begin changes to allow Dataspaces to be in any Monad

The Monad must contain the EngineM Value monad, but this isn't
enforced yet.  The idea is that the DataSpace class knows how to lift
from Engine back to its monad, and can pass that function into
things like foldFile, etc.  This doesn't work yet, so liftM is just passed
around and I use liftEngine for now.
Move Dataspace to its own module.
Move EmbeddedKV and AssociativeDataspace to Dataspace.hs
Put forall in the right place to get lift to work
Move external dataspace to separate file
Merge branch 'external'

Conflicts:
	src/Language/K3/Interpreter.hs
	src/Language/K3/Runtime/Engine.hs
Add initialization constructor to Dataspace and rename copyDataspace->copyDS