ODIDDataSource.read_data() logging changes, cleanup, and better handling of indefinite reads

read_data() now has special case logic for total_bytes_requested being
 set to int64.MAX (for indefinite reads). e.g. bytes_left_to_read is
 not decremented for indefinite reads.

ODIDDataSource now has a "total_bytes_written" member. When doing DTCP,
 bytes written != bytes read. And needed this tracked to debug issues
 related to Content-Length/response body length mismatches.

Condensed the per-read_data() logging to one line for cleaner debug output.

Simplified the allocation of the read_buffer.

Logging all cases where the ODIDDataSource is stopped or calls done() at
 message level and includes the (short form) content path.

Added ODIDUtil.short_content_path() to produce a short pathname to a
 resource.

Disabled logging in ODIDUtil.advance_index_to_offset().

Ran limited operation mode tests (livesim in active and stopped state).