add BufferedNetworkStream class (without Arrived event)
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.
Revert "all write to stream commands should be finished by Flush() to send data via network stream".
This reverts commit cdccdc6971faa342f0e45901d98eecdb5b9e1875.
Additionally this commit fixes missing Flush() calls in authentication phase in NpgsqlState.ProcessBackendResponses_Ver_3().
Another missing Flush() in unused method NpgsqlState.TestNotify() is fixed.
Merge branch npgsql master into multiple_notify_fix
Merge branch my_v2.0.12 into multiple_notify_fix in order to get the pure class BufferedNetworkStream (without event) because the event "Arrived" is not needed to fix the multiple notify bug [#1011374].