timeline: Move some docstrings to be inside the methods they refer to
utils/timeline: Provide context to a comment with a protected historical status
timeline: Clarify the scrollToPosition code and add programming safeguards

If out-of-bounds values are provided, warnings are emitted to aid debugging
timeline: Fix the "Zoom fit" and automatic scrolling behavior for clip insertion

- On drag and drop, call scrollToPosition with an X position, not nanoseconds;
  this prevents the timeline from scrolling to the end everytime.

- While inserting (multiple) clips, cache the value of zoom_fitted;
  this prevents repeated insertions from deactivating the fitted zoom

- Add a margin on the left of clips we scroll to during a drag & drop insert
- Simplify scrollToPlayhead's call to scrollToPosition
- Add more debugging statements
Pass the proper arguments to the audio/video layer controls

Passing self (the ControlContainer instance) as if it was "app" is a lie.
Lying is bad, and causes things to go wrong.

This fixes some tracebacks when trying to access other parts of the UI, which
lays the groundwork to allow handling timeline actions sensitivity properly.
timeline: Connect button press/release to the timeline, not the whole stage

Signal handling is then more specific, preventing useless (and wrong) stuff
from happening when clicking layer controls instead of the timeline canvas.
This is in preparation for making focus-based timeline actions sensitivity work.
pitivi: Rely on timeline widgets' focus to set actions/shortcuts sensitivity

This greatly simplifies the code (present and future) and makes the whole app
incredibly more reliable when it comes to preventing "dangerous" timeline
shortcuts (such as Delete/Spacebar) from interfering with other GTK+ widgets.

Fixes bug #707828
timeline: Make the Shift and Control keyboard mask variables private
timeline: Reimplement the seeking and framestepping keyboard shortcuts

This allows using left/right and shift+left/right to seek backwards or forwards
for one project frame or for one second.

Ctrl+left/right (seek to the nearest clip on the left/right) was not
reimplemented as this is a buggy and rarely used feature that complexifies code.
utils/pipeline: Prevent tracebacks when holding left/right keys on the timeline
timeline/elements: Use the _controlMask variable to match commit 5a60a7863b
viewer: Make the "TransformationBox disabled" messages FIXME instead of INFO

This prevents them from being interpreted as intentional/normal
project, timeline: Set restriction caps on tracks.
project: update tracks restriction caps when framerate is changed.
data/icons/Makefile.am: correctly name the uninstall-hook
tests: remove test_cache as it is outdated.
When we get an error, reset _waiting_for_async_done to False.
utils/pipeline: Don't attempt recoveries more than MAX_RECOVERIES times.

MAX_RECOVERIES is set to 5 for now.
Would be good to raise a dialog when that happens in the future.
project: no need to update_restriction_caps on timeline creation.

This will be done either by adding a track or when loading the timeline.