IO::FlatDatastore: implemented remaining bits, class-ified index.

IO::FlatDatastore:
	moved index to its own class;
	implemented remaining bits;
	moved error messages to anonymous namespaces.
IO: updated to prop reworking from Hord.
utility: import Hord::enum_cast().