Add ability to block until notices are available
Add a Block() method to the connection.

If a connection will have nothing to do until notices arrive,
it may call the Block method, rather than polling.  It should
not wake up until something happens on the connection, either
a notice arrives or the connection is closed (or perhaps spurious
wakeups generated by the system?).

Once a connection is blocked in one thread, there is no way that
I know of to recover control over the connection from a different
thread, so don't call Block unless you are sure there is nothing
else that the connection can usefully do.

In examples/, you can find a test driver program.  If you run it
with no arguments, it displays the new behavior.  If you run it with
any arguments, it displays the old sleeping/polling behavior.  To see
the different, you will have to use an interactive program like psql
to send notices with a distinctive payload, so you can observer the
change in latency.

I have little experience (or patience) with complex java systems,
and just added "public" keywords and type casts until it stopped
giving errors.  Presumably bad things will happen if you aren't
using v3.

Hopefully someone with more Java experience can clean up the dirty
hacks.