Config Data as Inputs Part 1

Proofing the idea that configuration data can be sockets. Lots of bugs,
just first pass.
Moved blocks into their own folders

Blocks used to spread across the app, their views and properties windows
group together. The new structure groups together all the parts of a
block into one folder. Makes life adding a new block much easier. Also
fixed the harness unit tests, which I believe have been broken since the
last commit (due to the removal of the block factory not being taken
into account).