Last Command Sent Improvements

Store last command sent for extended queries, too.
Decorate last query sent depending on how it was sent and what it was;
  A query can be simple, a parse or prepare command, or execute a prepared statement.
  On execute prepared, keep the actual prepare command.
Mediator.ResetResponses() became useless; remove it and all references.
Create NpgsqlQuery classes for protocol version 2 and 3.
Set last query sent in NpgsqlCommand, not NpgsqlQuery.
NpgsqlCommand.ExecuteBlind()

ExecuteBlind() is now static, eliminating all NpgsqlCommand instantiation overhead.
Fix comment that matched nothing.
Code simplification

Factor out duplicated ExecuteBlind() code.
In ExecuteBlind(), move connector.SetBackendCommandTimeout() into the locked section.