    Reasoning:
    ----------

    All the time (position) related concepts are shared between GESTimelineObject and GESTrackObject
    and currently are repeated at the 2 levels.
    Moreover, if we want to add the concept of Group we end up with something quite similare to the current
    GESTimelineObject but that contains GESTimelineObject-s instead of GESTrackObject-s so we could share
    those informations creating a new class aiming at containing the objects that have that
    notion of timing.

    At the same time, we want to clarify namings. First we should remove the word Object in class names,
    we have been told various times that it sounds just "wrong" for people as Objects are instances and there
    we are talking about Classes.

    Class Hierarchy:
    -------------

    <pre><code>
    <table>
    <tr>
      <td>

    Before:
    -------

    GESTimelineObject
        GESTimelineSource
            GESCustomTimelineSource
            GESTimelineTestSource
            GESTimelineFileSource
            GESTimelineTitleSource
        GESTimelineOperation
            GESTimelineOverlay
                GESTimelineTextOverlay
            GESTimelineTransition
                GESTimelineTransition
            GESTimelineEffect
                GESTimelineParseLaunchEffect
    GESTimelineLayer
        GESSimpleTimelineLayer
    GESTrackObject
        GESTrackSource
            GESTrackAudioTestSource
            GESTrackFileSource
            GESTrackImageSource
            GESTrackTitleSource
            GESTrackVideoTestSource
        GESTrackOperation
            GESTrackTransition
                GESTrackAudioTransition
                GESTrackVideoTransition
            GESTrackEffect
                GESTrackParseLaunchEffect
            GESTrackTextOverlay
      </td>
      <td>

    After:
    -------

    GESTimelineElement
        GESContainer
            GESClip
                GESSourceClip
                    GESCustomSourceClip
                    GESTestClip
                    GESUriClip
                    GESTitleClip
                GESOperationClip
                    GESOverlayClip
                        GESTextOverlayClip
                    GESBaseTransitionClip
                        GESTransitionClip
                    GESBaseEffectClip
                        GESEffectClip
            GESClipGroup
        GESTrackElement
            GESSource
                GESAudioTestSource
                GESUriSource
                GESImageSource
                GESTitleSource
                GESVideoTestSource
            GESOperation
                GESTransition
                    GESAudioTransition
                    GESVideoTransition
                GESBaseEffect
                    GESEffect
                GESTextOverlay
        </td>
      </tr>
    </table>
    </code></pre>