inspect: Adds extra fields to output

Including:
- header and minimum reader versions;
- unique ID;
- orthographic and inflection indices;
- index names and keys;
- index extra fields.
MobiFile: Adds RecordZero

This patch includes RecordZero, which ties together the PalmDoc,
MobiDoc and Exth Headers, in addition to the title string placed after
all of the above.

Since this is a rather difficult structure to extract, we use a custom
TypeMarshal to do so.
headers: Add some length fields and calculation
exth: Adds ExthBuilder, as a subclass of ExthUtil
text: Adds TextRecordBuilder

This commit adds a new constructor for TextRecord, allowing construction
without attepting to parse flag bytes, or performing an Array.copyOf
operation on a newly created array.

The new TextRecordBuilder uses this when splitting and compressing
according to preferences specified during building.
pdb: Adds PdbBuilder

Since adding a builder class, it makes sense to include a method to
write the result to a file, we add that here.