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 simplify this logic a bit.

`all_uncompressed` is `True` if all non-compression counts are 0. And then you check for `not all_uncompressed`.

What about writing it like this:

    any_compressed = any([count > 0 for c, count in compression_counts.items() if c != Compression.NONE])
    if any_compressed