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.
Fair enough on not enforcing ordering in the type system.  It is impractical.

@bgertzfield - Collection is more than Iterable plus size(). It also defines the mutation methods add, addAll, remove and clear. In the code I see, it's rare for a method to accept or return a Collection but common to accept or return an Iterable, especially code written in "modern Java" style that has more of a functional style in which streams of immutable objects (represented as Iterables) are transformed and filtered.

How hard would it be to make this matcher work in terms of Iterables rather than Collections?