Tries to improve encoding handling in `Extractor`

Instead of immediately falling back to returning an unencoded string, we try to
use utf-8 if we cannot accurately detect the content encoding.

This is far from ideal, but since returning an unencoded string brings problems
further down the pipeline (other workers are not able to decode it), this is a
step to reduce this problems.

@fccoelho can you please review and comment on this approach?