Add #where support for MemoryScope.

This would unpack via `Array#first` twice. One inside `#assert_valid_conditions` and once inside `#where`. What about an parser interface that returns the conditions: `conditions = extract_conditions(arguments)`. 

A slight variance of the `assert_valid_conditions`, asserts IMO should not return a value, an `extract_conditions` one is allowed to. Problematic is the fact that `extract_conditions(arguments)` does not access instance state. But I think this is acceptable as a trade-off.