Added functionality to MethodFormatter for handling Params arguments.

----------
Committer notes:
  * Squashed multiple commits to make review and commit easier.
Updated params formatting to individually format each arg and highlight
  each one that does not match the specified call.

* Added ArgumentSpecification.FormatArgument(object) which delegates
  to its matcher's formatting if the matcher implements IArgumentFormatter,
  otherwise falls back to the default format provided by ArgumentFormatter.
* Updated ArrayContentsArgumentMatcher to implement IArgumentsFormatter
  and format each params argument against its respective argspec.
* Updated CallFormatter to accept pre-formatted args so it no longer has to
  dig into the spec's non-matching args. Replaced its ICallFormatter interface
  with more general IMethodFormatter (it is basically a composite method
  formatter).
* Removed ArgumentsFormatter and replaced with Join extension method.
Added GenericInvoke to DelegateCall; DelegateCallInvoke now has the correct return type, which allows Autosubbing delegates.
Adding auto-sub from Func<>s to CHANGELOG and minor refactoring of DelegateCall

* Update CHANGELOG.
* Moved Type.GetMethod lookups to readonly static fields so we get the
  one-off reflection lookup (instead of per instance).
* Minor renames/moves to refresh my understanding of how this works.
* Removed DelegateCallSpecs; tested through DelegateProxyFactorySpecs.
Fixing SL40 compile error due to no Array.ConvertAll in SL40.
Classifying auto-sub from Funcs as breaking change

Alerts people that some substitute delegates will now return a new sub
instead of null which may break tests, and provides instructions on how
to fix.

Hopefully tests which rely on null from a substitute func will be fairly
rare, but it seems worth alerting people to the possibility.
Removed doc generation as part of build deploy until TC build failures
  can be solved.
Removing Arg.Matches.
Going to try working with expressions for more complex matchers to
ease burden on devs trying to use the feature.
Updating for 1.4 release
Added acceptance tests regarding nullable parameters (issue 78)
Possible fix
Updated TypeCanBeNull method to account for Nullable types, which is
  used by IsCompatibleWith(this object, Type) extension method.
  Thanks to Marc Gravell's StackOverflow answer for this approach:
    http://stackoverflow.com/a/1770232/906
Updated changelog with nullables fix.

Closes #78.
Updating to Castle.Core 3.0.0

Replaced Castle.Core 2.5.3 distrib with 3.0.0.

Dropping experimental Silverlight 3.0 support (Castle DP no longer supports
  SL30).
Updating 7-zip command line tool

Added 7z.dll to try and get builds working without full 7-zip install.
Updated to latest 7-zip.
Updating for v1.4.1 release.
Updating ILMerge to v2.11.1103
Updating NSubstitute.csproj AfterBuild target to lookup .NET reference
  assembly paths. This is to help avoid problems on machines with NET45
  installed, as it updates assemblies in the MSBuildToolsPath. This
  caused problems running on Mono, but could potentially cause other
  problems looking up types that have been moved from System.Core to
  mscorelib.

For more information see:
http://www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx
Updating for 1.4.2 release to fix problem on Mono.
Adding repro for issue #83.