Refactored Block Creation and added Initialise

Initialise will be needed for more complex blocks and is fired after
Build of block and view. Block creation was also being done in the
harness painter, which was ugly, so I removed that out to the Block
Factory. SRP FTW!
More refactoring and commiting with a problem

Have included Initialise for the Block View and removed some block
creation from the harness. I have discovered that you can't pass
arguments to Tick events, so have asked questions in the usual places to
help.