pipelet.js, Query(), optimization: keep keys for query cache as instance variable, reuse Query.get_keys() to get keys for all expressions in query