document.py: Converts links from lxml to str for Python 2.

url.py: Asserts str in URLInfo.parse().
document.py: BaseDocumentScraper.scrape returns an info dict.
Schema change: Supports setting link_type, url_encoding into URL table.
processor,hook: Rewritten scraping due to schema and scraper API changes.
http,util: Adds encoding detection routines.

Fixes to_str, to_bytes where decode/encode was present in Python 2
strings when it shouldn't be.
document.py: Uses HTTP header charset for encoding detection.

CSSScraper supports encoding detect.
Requires chardet. Loosens requirements.txt.
Implements NameValueRecord.parse to fallback to Latin-1 encoding.
url.py: Implements URLInfo IRI encoding other than UTF-8.
util.py: Tests detect_encoding() more robustly.
Implements processing IRI URLs (chfoo/wpull#7).
engine.py: Uses UTF-8 if not specified in record for URL item.
url.py: Fixes naive percent-encoding detection.

Adds quasi_quote(), quasi_quote_plus(), is_percent_encoded().
Merge branch 'develop'
Bumps version to 0.10.