Fixed references for Castle.Core in Moq.Tests.csproj

Moq.csproj had them conditionally resoved but that part was commented out
from Moq.Tests.csproj. As a result, you could compile but not run tests
in .NET 4.0. Since 4.0 is critical for the feature I'm implementing, I had
to fix this.
Added covariant IMock<out T> interface to Mock<T>

I wanted to be able to write test utilities for setting up more complicated
object interactions. I wanted to make a method with this signature:

    void Method<T>(Mock<IService<T>> serviceMock);

that could recieve an object of type `Mock<IFooService>` as a parameter (where
`IFooService` extends `IService<Foo>`). Since only interfaces and delegates
can be covariant, the raw `Mock<T>` won't work. This pull request lets me use
this method:

    void Method<T>(IMock<IService<T>> serviceMock);

The `IMock<T>` interface exposes only the members where we can still make
`IMock<T>` covariant (i.e. nothing that has `T` in the parameter list).
Merge pull request #44 from tkellogg/IMock

Added covariant IMock<out T> interface to Mock<T>