NUnit OutputXML updated

The output XML used templates to output the nUnit xml report, that did not support using special
characters in Describe and It descriptions. I replaced it with XmlTextWriter that does all the
escaping automatically. Also the nUnit report was not compliant with the scheme. It now has single
test-suite root name by the Path (is there better option?). Scheme is not verified as well as the
special characters.

Fixing #122
Adding Coverage Analysis (first pass)

Uses the AST to identify all commands in whatever script files the caller specifies, and sets empty PSBreakpoints on each of those commands.  After the tests finish, the breakpoints' HitCount properties are checked to determine coverage, and a report of any commands that have 0 HitCount is displayed.

Seems to work so far, but the tricky part is using this to analyze Pester's own test suite.  I've added several calls to Suspend-CoverageAnalysis and Resume-CoverageAnalysis (which basically correspond to Disable-PSBreakpoint and Enable-PSBreakpoint) to try to keep the number of false positives to a minimum, but I don't think we're ever going to be 100% accurate for our own internal tests.
Backtracking...

Performance hit was pretty deadly when I ran Pester's own tests using this feature.  Repeatedly disabling and enabling nearly 900 breakpoints brings the speed to its knees, and this performance hit would have been passed on to the users who weren't even affected by the problems of having Pester test itself.

However, I did get a single report run against Pester before I changed the code back, and it reported around 50% code coverage.  Definitely some room for improvement there.  I'll try to come up with a way to do a useful coverage analysis without a bunch of false positives against Pester in the future (maybe having two copies of the module with different prefixes, or something.  One to run the tests, the other to be analyzed for coverage.)
Command text now includes "return" and "throw" statements

When displaying missed commands, instead of only outputting the "command" element which comes after the return or throw keyword, the code now displays the entire context of the return / throw statement, which is more useful output.  May add more of this sort of context to the coverage output later.
Rolling back whitespace changes to Beta branch

Experimenting with Git; it was reporting changes to Describe.ps1 and It.ps1 which I had rolled back manually, but left some differences in whitespace.  Using Git Checkout -p option to try to check out the actual copies from the Beta branch.
More features, some refactoring

Invoke-Pester's -Coverage parameter (renamed from -CoveragePath) can now either accept strings (paths), or hashtables.  If you use a hashtable, it must contain a Path key (which can actually be named Path, p, FilePath, File, or f... maybe went overboard there), and may optionally contain StartLine (or start or s) and EndLine (or end or e) keys which allow you to narrow down the coverage analysis to a particular part of a file.

Coverage paths may now contain wildcards as well.

Nice-to-haves:  Maybe allow Function names in these hashtables, instead of requiring line numbers.  The AST makes it easy to find those anyway; it's just a matter of parsing the user's input in an organized manner.  Polymorphism would be nice right about now.  Do we have those v5 classes yet?  :)  This would allow for a more persistent way of analyzing coverage, without having to look up new line numbers every time you change a file.