ros_bag 508

Reworked bag.py to provide various methods for getting info about the bag as a programmatic object rather than in string or yaml format.
Please refactor this conditional block to something like this which does not repeat the assigned values twice:

    if chunk_header.compression not in compression_counts:
        compression_counts[chunk_header.compression] = 0
    if chunk_header.compression not in compression_uncompressed:
        compression_uncompressed[chunk_header.compression] = 0
    if chunk_header.compression not in compression_compressed:
        compression_compressed[chunk_header.compression] = 0

    compression_counts[chunk_header.compression] += 1
    compression_uncompressed[chunk_header.compression] += chunk_header.uncompressed_size
    compression_compressed[chunk_header.compression] += chunk_header.compressed_size