Add a separate executor hierarchy to coroutine prototype

- This allows to carry pre-compiled queries around, and re-execute
  them sereval times on different queries.  State is kept in the
  exec_node/que_node hierarchy, expr hierarchy just knows how to
  instantiate this when needed.

- This also solves the problem of obtaining "query" argument in
  call_operate: query can be passed to ctor of those nodes that need
  access to it.