beginning of a basic cli
Merge branch 'next' into cli
added cli test
Merge remote-tracking branch 'origin/next' into cli
test structure
Merge branch 'next' into cli
Merge remote-tracking branch 'origin/next' into cli
Merge branch 'next' into cli

Conflicts:
	CMakeLists.txt
some cli updates
redirect cin for test of cli
Set up structure for simple cli menu system
Skeleton for cli structure in place. Finalise in a few hours.
Tidy up, incomplete
Simplified menu system, better ease of use. More tests and tidy up
required
OK simple to use cli menu system now available for testing in windows etc.
 and then the Qa team can script a new Qa tool. Should be much easier than
 the hassle with python now. Likely this will change, but its unlikely the
 API will alter (downwards anyway).
style fixes + two potential errors actually.
Further fixes for type safety.
Added some example use in header. Basic but enough
Merge remote-tracking branch 'origin/next' into cli
bugfix to allow more than one sub-menu per level :-( sketch of qa_tool included