Added support for verifying the order of messages sent to a test spy.
Converted KWHaveReceivedInOrderMatcher logic tests to a parameterized test; found and fixed one logic bug.

The move to parameterized form was done to reduce duplication and
(hopefully) make the order-checking logic tests clearer. This turned
out to be a more complex that the parameterized test for the
matcher's string functions, but could be a basis for extracting a
pattern for future use (to simplify the final test classes).

The matcher logic bug was discovered after drawing out a logic table
in an attempt to see if the after-first matcher was superfluous. In
fact, it was discovered that, to cover all cases, we actually need
an additional before-last matcher, so in preparation (and for
clarity), the existing "before" matcher was renamed to "beforeFirst".