changelog: Fixes typo on date.

[ci skip]
conversation.py: Fix docstring typo.
util.py: Uses beautifulsoup for encoding detection. Supports encoding alias.
document.py: Detects encoding ourselves before passing to lxml parser.
Updates requirements to include beautifulsoup4
changelog: Adds new entry about encoding improvements.

Closes chfoo/wpull#59.
url.py: Implements URLInfo.hostname_with_port()
request.py: Fixes port not set on Host header.

Closes chfoo/wpull#56
web.py: Fixes clearing robots redirect url before it can be used.

Re: chfoo/wpull#58

When next_request was called multiple times, the redirect URL was set to
None. This caused it to fetch the same redirecting robots.txt repeatly.
changelog: Adds points about broken robots.txt and port number in hosts.
__main__.py: Calls stop from signal handlers within ioloop safely.

Closes chfoo/wpull#65.
url.py: Resolves dot segments in URLs. Adds flatten_path().

Closes chfoo/wpull#63.
recorder.py: Prints and flush status on response end to show 100% bar.
scraper.py: Adds clean_link_soup() to properly strip links.

Closes chfoo/wpull#64.
changelog: Updates latest to 0.23.
Merge commit 'f7b11a97c76f31559f17ea7d3ce142b23cf01c6d'
Bumps version to 0.23.