Revert "Removed nuget.exe"

nuget.exe should not have been removed because creating packages depend on
this tool

This reverts commit 2ff7eec1a469c7b14b3d455a0d5df795ca7dd899.
Reduced code duplication

There was already a helper function for running an example group. By using
this we are also reducing the soze of the boundary that has to be kept
stable
Remove generic dependency on core run function

The generic runner was not really helpful in order to polymorphically
handle events, which should be needed in order to e.g. be able to select
different output formats at run time
Skeleton JUnit output reporter

The formatter is not in a usable state, but we now have test code that can
verify that the generated xml is valid according to the schema
Extracted matcher for validating errors

This displays the actual validation errors when a test fails, instead of
just verifying a true/false value
Moved JUnitFormatter to the test runner app

Rather have as little dependencies in the core as possible, and then add
more if *really* needed, and the formatter will have dependency on xml
libs.
Use XDocument for xml generation
Added System.Xml.Linq

Used to verify generated JUnit result xml format
Matcher for verifying root element name
Created xml match helpers
Verify precense of test suite element
Create testcase xml element
Removed prototype code
Implemented outcome of test in JUnit xml
Implemented required no-of tests attribute
Added --output-file option to runner
Prototype output

Quick experiment to generate xml output as part of the build, so we can
see how Jenkins reacts to the data.
Ignore test results
Handle paket restore on mono
Run tests from ci build