Fixed encoding issues on Python 3

- Future imports everywhere, even in tests
- ElementTree.tostring returns bytes! Encode explicitly.
- The ``in`` keyword only works if both lhs and rhs are unicode.
- Removed DEFAULT_ENCODING setting, stick to UTF-8
Fixed issues with filter() and next() on Python 3

On Python 3, filter returns a generator instead of a list. Thus some
lines need to be handled differently.

Additionally, generators don't have a next() method anymore.
Updated testing configuration