Reordering comparison of calls in CallSpecification

Attempting to speed up call handling. Added PerfTests.cs to include
  very basic test, timing operations.
Unrolling LINQ query in CallSpecification to help performance.
Removing space between type and instance number for sequence exceptions
Changing Received.InOrder numbering to number all instances where
  required.

* Only showing instance numbers where the types are ambiguous. i.e.
  when methods from the same type are called via different instances.
* Numbering all instances in order, rather than numbering-per-type.
  This is because subs may implement multiple interfaces which would
  throw off the numbering.
* Moving formatting logic into SequenceFormatter
* Lots of horrible hacking.