Updated some IsoBox function documentation.
Expanded the functionality of the IsoGenericBox to allow for a payload offset

This will allow the IsoGenericBox to represent a subrange of content from
 the box's source stream.

Added the offset/size fields to the IsoGenericBox.to_string().
First cut at mdat truncation logic

Now that most of the MovieBox/SampleTableBox logic is implemented, the
 actual mdat box truncation logic can be implemented.

Implemented IsoFileContainerBox.get_first_media_data_box() and
 get_mdat_for_offset().

Implemented test logic to calculate the number of bytes into the source
 mdat for the new start and set the IsoGenericBox's source_payload_offset and
 source_payload_size accordingly.

Fixed up a number of inefficient to_printer() implementations.

Still testing with just B-AVC_MP4_MP_SD-03.MP4 for the time-being.