Let plugins visualize multiple topic types

Plugins now return a set of compatible types which are used to select
topics.  The selected type is now an argument in setROSTopic() so displays
can know how to configure themselves.
Add topic accessors to image display base class

This lets the Camera and Image displays work with the new quick select
interface.
Refactor how data is passed between widgets when adding a display

Have tabs contained by AddDisplayDialog emit SelectionData whenever a new
selection is made.  This is class contains all of the knowledge needed to
select a plugin along with an optional topic and datatype.
AddDisplayDialog now saves the current selection information for each tab
and reloads it when the tab changes.
Add utility functions for grouping similar topics together

getGroupedTopics() is a method for grouping topics that represent the same
data stream and can be visualized using the same plugins.  This is
primarily for plugins like Camera and Image which can view the same data
over subtopics of one base topic (e.g., they can use topics /camera/image,
/camera/image/compressed, or /camera/image/theora which carry the same data).
Change add dialog to use combo boxes for similar topics

In the display dialog, if a set of topics are subsets of one base topic
and are compatible with the same plugins, display the base topic along
with a combo box to select the subtopic.

For example, suppose camera data is being published on /image,
/image/compressed, and /image/theora and those topics are compatible with
the Camera and Image plugins.  Then the display dialog should display
/image as a topic with a combo box containing the entries "raw",
"compressed", and "theora" with the Camera and Image plugins below it.
Previously, each topic would have appeared as a separate entry.