Attached unwrapped message to EncryptionNotUsed

Previously, in the high-level API, if we expected encryption and
did not get it, we would raise an exception, and discard the unwrapped
message as a side effect.  Instead, we now attach the unwrapped message
to the exception, so that it can be examined.
Fixes to IntEnumFlagSet and IntEnum Update

This patch transitions from `flufl.enum` (which is abandoned/deprecated)
to `enum34`, which is a direct backport of the `enum` package in Python
3.4, and implements PEP 435 exactly.

Additionally, this patch fixes a couple bugs in `GenericFlagSet` and
`IntEnumFlagSet`, and adds unit tests for the relevant functionality.
Add encrypt/decrypt methods to SecurityContext

This patch adds the encrypt/decrypt methods to SecurityContext.
The function identically to how wrap/unwrap functioned before,
except that encrypt always uses encryption if the security context
supports it.

`wrap` and `unwrap` have the same parameters as before, but will no
longer throw errors if encryption was expected and not used.
Additionally, `wrap` and `unwrap` return named tuples like the underlying
"raw" API methods (the tuples contain the message, whether encryption
was used, and (for unwrap) the QoP used), whereas `encrypt` and
`decrypt` simply return byte strings (like `wrap` and `unwrap` used to).

In general, users should use `encrypt` and `decrypt`.  `wrap` and
`unwrap` are intended for protocols like SASL, where an unencrypted
message must be sent during negotiation but after an encrypted security
context has been established.
Rename get_mic and verify_mic in high-level API

`get_mic` and `verify_mic` have been renamed to `get_signature`
and `verify_signature` in the high-level API.  The new names are
more intuitive and clearer to people who have not used GSSAPI.
Fix _display_status import issue in test_base

Prefixing display_status with an `_` causes it to not
be imported with `import *`.  This caused an issue in
test_base.py.  This patch rectifies the issue.