Refactoring of the internal data of the VideoModel's indexes

The internal data used before could cause a situation where two
identical indexes (same row, same column, same parent) had different
data, thus making them unequal at Qt's eyes; besides that, if a model
index would go out of scope, its internal data would leak. This
refactoring assures that, if two indexes are, essentially, equal, they
will hold the exact same pointer as their internalPointer.
Initial PlotItemView implementation, using QCustomPlot
Main layout adjustments for the Graphs
Initial plot proxy model implementations
Add plots to the main window
Plot item view now plots
Get the graph data from the correct place
Set plot proxies root columns
Map proxyIndex before getting its data
Avoid calling mapFromSource() multiple times

...if topLeft and bottomRight equal.
Fixes a bug that allowed two identical modelIndexes to be different

Before this patch, the parentChildrenTable hash was actually a local
copy of either _indexesData or parentData->children, and, thus, was
destroyed when the scope was left, allowing two indentical (same row,
same column, same parent) indexes to be different.
Emit dataChanged when the angle changes

If either the center, the edge1 or the edge2 of the angle changes, this
will make the angle also notify its change.
Upgrade from GPLv2+ to GPLv3
Set first point correctly in the trajectory calculation
Prevent PlotItemView from plotting several points in the same frame