Introducing Idioms.FsCheck

This pull request contains a new assertion, related to #198, verifying that the return value of a public Query is not null.

It currently supports:

1. Parameterless queries
2. Queries with branching
3. Queries accepting parameters (primitive types)
4. Queries accepting parameters (complex types, e.g. System.Version)

as well as combinations of 2, 3, and 4.

An injected instance of an `ISpecimenBuilder` creates instances of the hosting type when a Query is defined as an instance method.

If a Query is parameterless the assertion simply exercises its return value by invoking it. Otherwise, its return value is exercised against arbitrary values generated by FsCheck.

When needed, `ISpecimenBuilder` (e.g. a `Fixture` instance) and FsCheck can be customized via their DSLs.