Fixes and refactoring of some DTCP logic

Booted some more code from ODIDDataSource into ODIDUtil so
 preroll_livesim_resource() can use it and to better isolate DataSource-
 specific logic:

 calculate_encrypted_length() -> ODIDUtil.calculate_dtcp_encrypted_length()
 get_packet_aligned_range() -> ODIDUtil.get_dtcp_aligned_range()

Fixed ODIDIndexEntry.BYTEOFFSET_OFFSET and FRAMESIZE_OFFSET values. They
 were off by 1. They weren't being used until recently so the issue
 wasn't exposed. But caused an issue when processing all-0 entries
 (which got 0-stripped to nothing, causing an exception in
 vobu_aligned_offsets_for_range().

Fixed a bug in vobu_aligned_offsets_for_range(). The size check logic
 was inverted, causing an exception to be thrown when the size was
 actually valid.

Ran tests with DTCP-protected program streams. res@size and
 Content-Length look valid. But it appears the dtcpip_mock_lib is
 returning "encrypted" buffers which are the same size as the
 unencrypted buffers. Assuming this is environment.