Issue 13 Completion

Fixes issue #13.

This completes the items, which were left undone in an earlier merge request. See #13 for a list of all the items included.

The commits below make the following changes to NUnitLite, to match nunit-console...

1. Modify --test to take a comma-separated list of values.
2. Modify --explore and --result to take output specifications
3. Add tests of --include and --exclude options

Note that the implementation of --include and --exclude for both NUnitLite and nunit-console allow comma-separated lists of categories but _not_ category expressions as implemented in NUnit 2.6. We have some design work to do to define a dsl for  selecting tests.
We have a Guard utility class and I sometimes use it. However, in this instance, I felt a NullReference exception would be clear enough. 

In general, such a guard clause does two things:
1. It converts a NullReference exception to an ArgumentNull Exception.
2. It throws the exception earlier.

Item 1 gives no new info but item 2 can be very useful where the exception won't be thrown immediately, especially if the reference is being passed down a chain of calls before being used.

Here, the NullReferenceException will be thrown in the first line of the method getting the call.

Long explanation, I know, but I wanted you to understand my thinking about this: Use guard clauses to get info about a bad argument earlier than you would otherwise get it.