Parameterized tests, new NUnit export format

The It command can now accept a -TestCases parameter, which is an array of hashtables that is to be splatted to the test block, which will be executed once for each test case.

In conjunction with this change, we've updated the NUnit xml export contents to more closely match what NUnit produces.  The original format is still available for now, though deprecated.  The old `-OutputXml` parameter is being replaced with two separate parameters, `-OutputFile` and `-OutputFormat`.  `-OutputFile` is a file path similar to what would have been previously passed to `-OutputXml`, and `-OutputFormat` can currently be set to either NUnitXml or LegacyNUnitXml.  Using the `-OutputXml` parameter, though deprecated, is the equivalent of `-OutputFile <path> -OutputFormat LegacyNUnitXml`.

Aside from those functional changes, there's been some refactoring done on the NUnit export code and on the `It` command, to improve readability, testability or both.