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.
Sorry, I've been staring at this and don't see how that's the case. The generator in _get_connections could fail to ever yield if the topic used to filter is not actually in the connections, which would produce an empty list. This makes the check necessary. If there is no connection with the correct topic type then we skip over that connection. Also, in this case the previous comment above about removing the line 565 seems to not be correct either.

Am I missing something?