add compiler query-opts, add support for order-asc/desc, add fail fast logic to :join steps
refactor sub-query format to use :join or :optional, add group-by support