if query result source has no encoding set, fall back to utf-8 encoding.

It's a bit tricky to do this properly for python 2 and 3, but I think this patch goes into the right direction.

For later on I think rdflib should be clear about what source is, and what attributes, methods and return values are expected.

If that would be defined, then a user of the library would know when to wrap a source within a codec or not. 

resolves #344