Don't open the PBC connection until a request is sent.

This prevents exceptions from occuring while trying to create a new
transport in the pool, which happens outside a try/except. The result
is the same behavior as HTTP, which delays opening a connection until
the first request.
Raise the final exception when the retry limit has been reached.

This prevents masking of errors when the loop falls through to its
completion, all tries raising BadResource. The previous behavior was
that the function doesn't return any value, essentially returning
None.
Move _connect() call into _send_msg() so that streaming doesn't break.
Test that retry logic re-raises the original exception when tries are exhausted.
Eject the bad connection from the pool even on the last try.

Also, don't penalize a node that has some unspecified unretryable
exception.
Merge pull request #258 from basho/gh218-http-masks-errors

Ensure that errors are propagated after retries are exhausted.