test: add helper to assert that an SMB2 error occurs
test: make tests use assert_error helper
model: change how error responses are raised

Rather than making smb2.ErrorResponse itself an exception,
wrap the entire SMB2 response in model.ResponseError and
raise that.  This allows the printed form of the exception
to contain the actual status code.
test: make tree_connect take client as optional parameter

This allows precise control over which client object is
used to establish the connection.  If left unspecified,
a default is used.
model: suppress exception propogation when intercepted by future

If an exception is shunted into a future by a with block,
prevent it from propagating further.  In particular, this
prevents connections from being improperly aborted in
some instances.
smb2: add OBJECT_NAME_NOT_FOUND Status
test:durable: expand and refactor

- Add tests for reconnects being rejected based on client GUID
- Add tests for handle invalidation
- Factor out common code into helpers
model: fix validate_negotiate to always be signed
smb2: ensure buffer of CreateRequest is at least 1 byte

This is required by the spec and enforced by Windows
test:querydirectory: open directory with FILE_SHARE_READ

This prevents test failures if someone happens to have
the share open in Explorer, etc.
test: remove expected failures on tests that should pass