MockBase<T> provides a default implementation of MockedObject that automatically tries to convert the mock to the mocked type. This alleviates interface-based mocks from having to provide an implementation of MockedObject.
Improved error handling when Apply is called without any specifications, and when attempting to specify a chained property or method call.
Argument filtering support.

Argument filtering enables expectations such as:

```C#
mock.When(x => x.Logon("user", It.IsIn("123456", "passw0rd!"))).Return(true);
mock.When(x => x.Update(It.IsBetween(5, 10), It.IsNot(UpdateMode.Something)).Return(50);
```

As a consequence of this work, ref and out support is currently broken.
Damn project file wasn't saved.
Calls to MockBase<T>.Apply() no longer need to pass in method arguments twice - they only need to appear in the selector. Related to this, property setters are now configured and applied via a separate set of methods (WhenPropertySet and ApplyPropertySet) and the value being set can be used to filter the specification.
Several refactorings and added IsNotLike argument filter.
Added verification support.

This feature allows verification of calls against mocks, such as:

mock.Verify(x => x.Login(It.IsAny<string>(), "123456").WasCalledExactlyOnce();