Massive changes in order to completely separate Gui / Engine

- AppManager is now separated in 2 classes: AppManager and
GuiApplicationManager
- AppInstance is now separated in 2 classes: AppInstance and
GuiAppInstance
- Pimple AppInstance and AppManager
- Pimpl ViewerTab
- Pimpl Gui
- Separate all the classes in Gui in separate files

Also:

- A knob without animation will not serialise its curves but just a
boolean indicating it has no animation. It saves a lot of space in the
project file.

- All QtGui includes from Engine/ are gone
- I'm on my way to create a second main.cpp just for the background app
so we can distinguish Natron Gui and the background renderer.
Merge commits + comment Combobox and its usage to be more comprehensive.