Partial subs. #41 #93

[dave@davesquared.net: squashed into single commit for easier rebase]
Reverting ThatCallsBase option until we clarify requirement and syntax
Moving CallBaseFor tests from SubstituteExtensions to top level acceptance test
Throw on attempt to call base on non-virtual

Throwing CouldNotCallBaseException as soon as abstract/final member is
called.

Removing tests that attempt to configure non-virtual members.
Spiking configuring CallBase using returns
I changed the api to sub.DoSomething().Returns(x => x.CallBase())
Ensuring base method is only evaluated once per call
Adding partial substitute examples
Adding breaking test for #118 (an issue after adding a public static method to a concrete class that is being mocked)
Excluded static methods when determining if a type is pure virtual (Fixes #118)
Also added a (already passing) test that checks that a substitute for a concrete with a static method can setup a return value to improve coverage of this type of class
Added documentation for the changes that were made in the last commit
Updating to Castle.Core 3.2.1.

May help #76
#111 Fix Arg.Any matches for ref and out params
#111 - rename tests to match style of other FieldReports
* add additional tests for Returns() and Received()
Fixed issue #114: Args matches with optional parameters broken
Updating changelog with fixes for #111 and #114
Adding some more tests for #114
Moving classes to .Core that are not intended for direct use
Fixed issue with method with sealed class return type
Spiking Substitute.ForPartsOf<T>

Renabling @alexandrnikitin's initial call base by default idea to
  see if it better fits the examples I'm seeing.

Adding basic Maybe type, as no one should have to code without one.

TODO:
- decide whether to remove explicit CallBase option
- enable DoNotCallBase() for void calls? When().DoNotCallBase()?
- add overloads for Substitute.ForPartsOf.
- throw on Substitute.ForPartsOf if an interface is given