Implemented logic for calculating sample cut points for non-video tracks

Initial implementation of IsoSampleTableBox.remove_sample_refs_before_point().
 Currently it only calculates the sample id that immediately follows a
 given byte offset. This will be supplied to functions in the subboxes
 that will remove references to samples that will be cut from the tables.
 (forthcoming)

Implemented IsoChunkOffsetBox.chunk_for_offset(). This provides the index of
 the chunk that most closely precedes the given byte offset.

Implemented IsoSampleToChunkBox.sample_for_chunk(). This calculates the
 sample number of the first sample of the given chunk.

Factored out offset-to-sample logic from
 IsoSampleTableBox.get_access_points_for_range() into offset_of_sample() so
 the logic can be used in other contexts (e.g. for verifying the cut points
 for tracks).

Tested with non-segmented dlna content and first audio track. Verified the
 sample identified by remove_sample_refs_before_point() immediately followed
 the video frame of the tested video sync sample.