NSubstitute auto default values from fixture (fixes #297)

The solution is similar to what @dcastro did for AutoMoq on #302, but for NSubstitute.

There are a few differences, though:
It works with ref parameters
It won't setup void methods due to a limitation in NSubstitute that does not allow to override When..Do setups

Notes:
I had to late bind the NSubstitute methods because the signature of Returns and ReturnsForAnyArgs methods has changed a few times since 1.4.3 (had optional parameters added and return type changed). 
I added the classes that late binds the methods to the AutoFixture kernel as I though it might be helpful for someone else.

```LateBindingStaticMethodQuery```: Selects public static methods that has the same parameters of another method, ignoring optional parameters and return type.
```LateBoundMethod```: Decorates another method invoking it supplying missing optional parameters.
```GenericMethod```: Encapsulates a generic method, inferring the type parameters bases on invocation arguments.


To be honest, I've never come across a situation where I had to mock these... I see where you're coming from. I guess the fact that I never had to mock these methods may be a testament to the fact they don't need to be mocked - their logic is soooo simple, it's not something worth faking. Also, `ToString` will (or rather, *should*) always return a non-null value, so having AutoMoq/NSubstitute set it up is of little value.

@ploeh and @moodmosaic, what do you think about this?

Whatever the decision may be, I think the behaviour should be consistent - if we decide not to mock these two methods, I can go ahead and submit a PR for AutoMoq.

(By the way, about my other question, I meant to ask about non-abstract classes, sorry about the confusion. But your reply answered my question anyway - AutoNSubstitute does not mock those.)