WIP live changes. Implemented byte-seek and time-seek for sim live/lop modes

The Rygel HTTPByteSeekRequest class had to get an overhaul. It couldn't
 handle open byte ranges with unknown content lengths due to leveraging
 the libsoup message header get_ranges() function. This attempts to turn
 an open range request into a closed request. And it's not really conformant
 with DLNA 7.5.4.3.2.22.3 regardless. Wrote 7.5.4.3.2.22.3-conformant
 parsing code, much like the HTTPTimeSeekRequest classes parsing code.
 It was also coded to always set the total length and range length - both
 of which cannot be known for unbounded content.

Similarly, the Rygel DataSink class was assuming that a HTTPByteSeekRequest
 could always have a known content length. Added a check there to only
 set the max_bytes on the sink if/when the range_length was defined.

Changed HTTPMediaResourceHandler supports_byte/time_seek() to return true if
 media_resource.supports_limited_byte/time_seek() return true. This is
 necessary for HTTPByte/TimeSeekRequest to be processed and passed to the
 MediaEngine.

Fleshed out much of ODIDDataSource.preroll_livesim_resource(). Time- and
 byte-seek are implemented and many cases tested. Cleartext seek and
 response are tbd. And there are many, many test cases to be run through.

Fleshed out ODIDUtil.offsets_within_time_range(). Wedging in the
 live-specific logic into offsets_in/convering_time_range() was just
 getting to ugly. But might revisit this later.

Changed the sim to only start the autoreset timer after the sim has
 stopped.

Added a few sim utility/convenience functions. Haven't decided if they're
 a good idea or not.

Added ODIDUtil.usec_to_secs() for use everywhere where we're outputting
 microseconds.