Validation Engine addition

Refactored Validation out to its own engine class. The harness will do
very simple validation checking required inputs on blocks. Blocks do not
do any complex validation yet. The menu item changes colour when there
is validation but not when the engine first loads.