Matcher should always work with the whole expression, including Convert

Without this change, the following code doesn't work correctly,
because the passed in long is compared against int.

    interface IFoo
    {
        string M(long l);
    }

    var mock = new Mock<IFoo>(MockBehavior.Strict);
    mock.Setup(x => x.M(int.Parse("2"))).Returns("OK");
    var result = mock.Object.M(2L);

This commit is based on a [SO question](http://stackoverflow.com/q/18876436/41071) that asked about this.