PCT-671: Support for explain

Alpha prototype, WIP
@vadimtk Are you sure it works that way?  Afaik, once a connection (from the pool) is "made" (i.e obtained, taken, established, whatever), that connection remains the same connection (i.e. same connection ID in MySQL).  It only changes if you `db.Close()` and `db.Open()` again.  This is why `defer db.Close()` is so important because without it, that single connection is held open forever (as long as the program is running).