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
I'm trying to understand the value of this added minimal call context. Couldn't the same code depend on ICallContext instead of this new interface? Do we really need a slimed-down version of the contract?