implement API for queries via GET (Fixes #350)

Make output path optional when executing queries. If not specified,
the evaluator simply leaves a result temporary collection in place.

Added a TODO on cleaning up these temporary collections.
The issue is only the evaluator knows whether the resulting collection is a new temp collection or just some unaltered source collection. I see no way around having the evaluator return some indication of whether that's the case or not. Right now the type is just `Task[Path]`. Open to suggestions for what to return that is simple, makes it clear whether the collection should be cleaned up, and doesn't involve `Boolean`.