General refactoring
Based on !856 (merged)
- move logic out of ui.py
- refactor export_data logic
- use Gee.LinkedList to store items
- do some tricks to make most methods of the data class available in vala
- Add PythonHelper to help instantiate python Objects or execute python methods
The last two enable to move most of the application and ui logic to vala