Added API and menu item for auto-layout of nodes.

No implementation whatsoever yet.
WIP.
WIPWIP
WIPWIPWIPWIP
constraintsOnlyTidyup1
constraintsOnlyTidyup2
constraintsOnlyTidyup3
pinned flag - not doing anything yet
privatised constraints methods, removed m_constraints
Sibling sorting working vertically too
Fixed calculation of sibling separation in vertical case.
More constraints iterations
Added a couple of unit tests, fixed a crash.
Got node pinning kindof working.
More tests.
Failing layout test cases.
Another failing test.
Replaced connection alignment constraints with springs.

The alignment constraints don't work well because they end up fighting each other far too much, pulling the graph in all directions. Springs play nicely together by compromising and aligning things to a middle ground. This is analogous to the hard/soft constraints we were using in the existing positionNode() and positionNodes() calls, so I'm hopeful that this new layout code will be capable of doing it all in the end.
Implemented positionNode using LayoutEngine.
Added positionNodes() test cases.