Issue 13

Work on this issue is not complete, but I'm putting it on pause while I work on the issue of text capture, which came up while working on this one. Meanwhile, I'd like to merge the parts that are complete.

What's done:
1. Option --output is a synonym for --out, as for nunit-console and test-harness.
2. Option --err is implemented for redirecting error output
3. Option --work is implemented, but currently only affects where standard and error output go, since I have not yet implemented the changes to --explore and --result.
4. Option --timeout is implemented.
5. Option --teamcity is implemented - @simoneb please look at this
6. NUnitLite uses Off/On/All for labels but doesn't actually implement On correctly because of the capture issue. In fact, this is exactly what console and harness are currently doing.

One possibility, given the ramifications of the text capture issue, might be to back out item 6 and go back to a boolean option in all programs. My sense is that we'll save time by waiting to make any further changes.

CommandLineOptions ensures that workDirectory is only null or has a value, but we might want to check String.IsNullOrEmpty defensively in case that changes in the future.