First pass at parsing the TES3 record.

Working toward a file parsing routine that only interprets
the TES3 header record.
Add in ESx Read/Write support.

The EsxFile type will only interpret the first record
of the file.  All other records are parsed into the
generic Record type.

Known issues:  EsxFile will silently discard header
and flag values from the TES3 record.

Import / export tests on a small version 1.3 ESP passed.
Abort file read if header has unknown values.
Enhance Record Show

Hide the header value if it is 0.
Replace the flag value with 'None' or a list of flags set.
Add custom labels for 'Blocked' and 'Persistent' records.
Drop SubRecord srSize (redundant).
More size handling cleanup.

Drop redundant record size member.
Change exported srSize to report total SubRecord size.
Add dependency version check.
Add testing stub for SubRecords.

cabal test works with the 'not implemented' test,
but building the tests fails at link when the SubRecord
is used.
May need to be split into library, tool, and tests.
Adjust project structure.

Moving the test suite into a separate folder, and listing
esxtool as a dependency fixed the ghc linking fault.
Move main code into src/, and declare a library for the Data modules.
Add TODO.