LinkInfo: retry HTML parsing with raw content

HTML parsing with lxml fails if the string has already been decoded to
unicode but the HTML contains an XML encoding declaration.  Since not
all pages have this feature, and we'd like to preserve requests'
encoding detection where possible, our best bet is to try again with
just the raw bytes and let lxml use the declared encoding in the
document.
Merge pull request #29 from alanbriolat/plugin/linkinfo

LinkInfo: "Unicode strings with encoding declaration are not supported"
Work around shlex unicode handling bug in Python <= 2.7.2
Freeze flake8 version (1.6.2), make code pass it
Disable flake8 in .travis.yml, by popular demand
Add textual log severity indicator

Give some indication of log message level when stdout doesn't understand
ANSI colours, e.g. many IDE consoles.
Load configuration from file-like object, not filename
Remove special case in PluginManager.broadcast for Bot

Renamed Bot.setup and Bot.teardown to stop PluginManager.broadcast('setup')
going recursive and remove the need for the "static=False" argument.
Refactor PluginBase into Plugin

Also added missing_dependencies method to the Plugin class in preparation
for less tightly coupled dependency checking.
Refactor plugin discovery slightly to be more testable

The plugin system is now more testable because mocking a bot with only
test-defined plugins available can be done using the available_plugins
attribute of Bot.
Refactor PluginManager to be simpler and have a "cleaner" method proxy
Move Bot's special plugin_name somewhere more sensible
Add MethodRecorderMixin for testing, and tests for it
Add tests for bot/plugin configuration mechanism

Also add TempEnvVars test helper
Revert "Add MethodRecorderMixin for testing, and tests for it"

This reverts commit 85a5e457a7f2527da8f0acfb4fc1e1445ff037cd.

Conflicts:
	csbot/test/helpers.py
Refactor mongodb support to a plugin, where it belongs
Add test case for LinkInfo title encoding
Make it easier to add LinkInfo encoding test cases
Add simple LinkInfo encoding examples
LinkInfo: Fix UTF-8 (and hopefully other encoding) handling