Query implementations for non-indexed json streams. Use an indexed collection if performance is needed. This implementation is mostly for testing.
Value = the type of the result to be returned. Streaming = the type of objects that are queried.
If the types of Value and Streaming are disjoint, a mapper must be supplied to map the Streaming values to the Value type.