Minimal call sequence verification implementation

This is the best API I could come up so far. An example of proposed syntax would be something like this:

    var sequence = new CallSequence();
    var mock1 = new Mock<RoleWithSingleSimplestMethod> { CallSequence = sequence };
    var mock2 = new Mock<RoleWithSingleSimplestMethod> { CallSequence = sequence };
    var mock3 = new Mock<RoleWithSingleSimplestMethod>();
    
    mock1.Object.Do();
    mock3.Object.Do();
    mock2.Object.Do();
    
    CallSequence.Verify(
      mock1.CallTo(a => a.Do()),
      mock2.CallTo(b => b.Do())
    );

Regarding discussion in issue #21 :

1. Removed "verify not in sequence" feature for now
2. Changes CallSequence to take parameter of MockBehavior

        var m1 = new Mock<RoleWithSingleSimplestMethod>() 
            { CallSequence = new CallSequence(MockBehavior.Loose) };
    

3. Introduced a shortcut in CallSequence when all mocks have the same sequence:

        CallSequence.Verify(
          m1.CallTo(m => m.Do()),
          m2.CallTo(m => m.Do()))
        );

  A method is exposed on sequence object should anyone require checking more than one sequence:

        sequence.VerifyCalls(
          m1.CallTo(m => m.Do()),
          m2.CallTo(m => m.Do()))
        );

4. Moved the sequencing feature (along with `CallTo...` extension methods) to a separate namespace
5. Introduced extension  points but for now they are hidden because I have no good idea yet on how to deal with Times.XYZ() - for sequences, this is non-trivial, especially when taking into account few combined "at least" and "at most" checks.
6.Exposed CallSequence on MockRepository
Just realized that for all the matching to work as designed, it actually has to be a new interface (better than a tuple):

interface ISequencedCall
{
  Mock Target { get; }
  ICallInfo Call { get; }
}

so that the Current property of the ICallSequence is actually of that type instead. 
Maybe there should be an extension method for ISequencedCall like `Matches(this ISequencedCall call, ICallMatcher expected, Mock mock)` to make it easier for the strategies to determine if they should move the cursor forward or fail?