TimeItem: Added new class - a base of TimeMarker, derived from SelectableItem
View: Added time_markers
CursorPair: Derived from TimeItem
View: Store CursorPair in a shared_ptr
RowItem: Pass rect into label_rect
TimeMarker: Renamed get_label_rect, and made it take a const QRectF&
SelectableItem: Moved in label_rect
TimeItem: Added mandatory set_time virtual method
TimeItem: Added mandatory get_x virtual method
CursorHeader: Handle all TimeItems instead of TimeMarkers

This fixes the issue where items were always dragged to the x-coordinate of
the mouse. This patch makes the drag relative to the grab point.
CursorHeader: Accept TimeItems not providing a Popup
CursorPair: Draw highlight when selected
TimeItem: Made paint_label a mandatory field
View: Added CursorPair to time_items list

This solves bug #514
CursorHeader: Paint by the labels by the time item list
MarginWidget: Moved in _dragging, _mouse_point, and _mouse_down_point
DecodeTrace: Remove hide_hover_annotation() as it's only used once