QgsNumericSortTreeWidgetItem had a giant TODO saying "make it work".
This makes it work, and adds some other useful features like
being able to specify custom sort value and force items to always
sort on top.
Clean up API. Remove QgsPanelWidgetPage - no longer needed
QgsPanelWidgetStack widget manages back button and breadcrumb.
QgsPanelWidget manages state of active widget.
Rationale:
- there was a lot of large objects passed by value, so potentially
there's a speed bump from this
- even for implicitly shared classes like QString/QList there's still
a (small) cost for copying the objects when there's no reason to
- it's the right thing to do!
- update methods of existing classes
- add comment to methods missing in the sip bindings
- split up collective sip files into single files and use
same directory structure in python/ as in src/
- add a lot of missing classes (some might not make sense because of
missing python methods in those classes)
- remove some non-existing methods from the header files
- add scripts/sipdiff
- replace some usages of std::vector and std::set with QVector/QSet