provide some details when encountering a protocol error
Merge pull request #153 from opsmatic/protocolerrordetails

provide some details when encountering a protocol error
Use better error messages instead of ErrUnavailable

When a session is closed it should not be possible to execute queries,
the error message for this is distinct to a live session which has
not connections.

If a live session has no available connections then indicate that
instead of the generic ErrUnavailable.
Use defer to unlock in session.go
Update test
Remove redundant iter nil check