New matcher HasSubsequence

When implementing a library to test compiler command-line arguments in the form:

`-x foo -y -z bar`

I found I needed a Hamcrest matcher which would look for a consecutive
sequence of items anywhere inside a collection of items.

I was surprised that Hamcrest had matchers which:

1) Match if a collection includes a single item anywhere (`hasItem`)
2) Match if a collection includes multiple items anywhere (`hasItems`)
3) Match if a collection includes multiple items in order anywhere, consecutive or not (`containsInRelativeOrder`)
4) Match if a collection exactly matches another collection in order (`contains`)
5) Match if a collection exactly matches another collection in any order (`containsInAnyOrder`)

but not for a consecutive sequence of items anywhere inside the collection.

This implements such a matcher (`hasSubsequence`) and adds tests. I borrowed the tests from `containsInRelativeOrder`,
so let me know if there are better tests I should include. I wasn't sure about the `WithValue` stuff
so I just copy-pasted it from that test.
Hi Nat,

Collections are not necessarily ordered, but they often _are_, and often this information is often embedded only in the documentation. Consider LinkedHashMap and TreeMap's keySet() and values() methods; to prevent using this matcher against these could be very tiresome - it forces the user into an cast (to an undocumented type which may change) or to a copy which requires the user to know as much as they did before. 

I think there is already an onus on the Java programmer to understand the iteration semantics of the containers they use, since the JDK regularly documents additional semantics on top of that guaranteed by the type.

To me it seems that a Collection *does have* an order. That it may not be the same order every time are part of the semantics that the Java programmer deals with already.