More unicode and encoding support.

This mirrors some of the work that is going on in [python-stix/unicode](https://github.com/STIXProject/python-stix/pull/235)
* Changed `quote_attrib()` and `quote_xml()` to return unicode strings.
* Added `encoding` param to `Entity.to_xml()`.
* Added `bindings.save_encoding()` contextmanager which sets and resets
  `ExternalEncoding`.