Feature/29 graph ui

Fix for #29 

Do not merge yet. This branch is still under development, but we do want to monitor it extra closely and check also the Travis build.

Tentative TODO list:

 - [x] Make edges/connections between nodes in graph possible
 - [x] More right-click actions on components, e.g. Preview Transformation and set Component Requirement.
 - [x] Finish the "Write data" submenu in the canvas' right-click menu.
 - [x] Set coordinates when adding new stuff baed on drag-n-drop
 - [x] Fix issue with mapped columns in e.g. Table Lookup's  property widget.
 - [x] Fix issue that sometimes dragging columns to e.g. Concatenator transform does not work (believed to be symptom of same issue as mapped columns issue above).
 - [x] Remember the user's preference for 'Classic' or 'Graph' view.
 - [x] Delete nodes and connections using the DEL key.
 - [x] Nice 2 have: Prevent showing "available" input columns when they are not in scope (e.g. different origin tables).
 - [x] In addition to the shift+drag way of making new links, also have a right-click option.
 - [x] Fix "multiple mapped columns" widget - when checking a column in the middle of two other checked columns, the mapped column names are moved around.
 - [x] Add an "edit" or "configure" button in the context menu of components. Similar behaviour as when double clicking.
 - [x] Show visually when a component is not yet configured.