PCT-671: Support for explain

Alpha prototype, WIP
If I understood correctly, then we should use:
```go
func (c *Connection) Explain(q string, db string) ([]proto.ExplainRow, error) {
explain := []proto.ExplainRow{}
```
Also why `explain []proto.ExplainRow` and not `explain []*proto.ExplainRow` ?