dia to sml: refactor dia visitation logic with pre-processing

It was becoming increasingly obvious that the visitation for dia
objects was not the right strategy due to the amount of moving parts
it required at each usage point.

This approach instead uses a pre-processing of dia objects, putting
them in the right shape before anything is done to them.
dia to sml: continue pre-processing refactoring

- processor now handles properties too
- remove processing from graph builder, just avoids unnecessary
  coupling. workflow is now responsible for processing.
- add tests for processor
- fix a number of processor bugs
engine: use the new dia to sml transformation workflow
dia to sml: remove legacy transformation code
dia to sml: drop the object prefix on processor and transformer
dia to sml: remove checks on all UML relationship types

We made the checks on connected relationships a bit stricter without
realising it. This meant diagrams with unconnected associations fail
to generate. Created a hack for now.