A matcher which wraps another (typically slow) matcher and
keeps a client-side cache of the results. For instance, you can use this to
wrap a RemoteArrayMatcher to hide the latency of the underlying matcher
having to make ajax request.
Objects in the cache are deduped on their stringified forms.
Note - when the user types a character, they will instantly get a set of
local results, and then some time later, the results from the server will
show up.