PCT-671: Support for explain

Alpha prototype, WIP
Can this interface be defined in `query/explain/explain.go`?  Or better yet: just put everything in `query/explain.go`?  I would like to avoid excessive dirs and files because it makes the code hard to follow, hard to find things when scattered all over, etc.