per-user command history

make sure that command history is tracked separately per every user that
talks to the bot
[ChatRoom] become Python 3 compatible

thanks to  https://github.com/oxplot/fysom/issues/1
which in turn references http://www.rfk.id.au/blog/entry/preparing-pyenchant-for-python-3/
HIDE_RESTRICTED_COMMANDS option added

if set to True in config will prevent restricted commands to appear in the help response
Warn when missing 'webtest' package (needed for tests)

webtest isn't in requirements.txt because it's only required to run the
tests. This commit will make run_tests.py try to import it and fail with
a helpful error message in case it fails.
Also warn when trying to run tests while missing nose

Just in case someone hasn't got nose installed either.
Correctly pass timeout to Queue.get()

Else we may hang indefinitely :) Fixes #122
Allow changing sender of messages in test backend

Instead of completely hardcoding which jid messages are sent from, add a
sender attribute to the TestBackend class which may be changed to change
where messages are coming from.
Allow passing block to popMessage()
Merge branch 'tests' into pproduct
Add test for per-user command history
Merge pull request #123 from zoni/tests

Improve test framework. Nice simple one
Merge pull request #121 from zoni/webtest

Warn when missing 'webtest' package (needed for tests). thx
Python 3 doesn't have str.decode
py3 breakage on basestring
Merge pull request #126 from arrrrr/master

Python 3 doesn't have str.decode
Merge branch 'master' into pr/120

Conflicts:
	errbot/builtins/chatRoom.py
Merge branch 'p120-unittests' into pr/120
Fix a python3 incompat. where bytes were concat'ed to strings.
Fix bot not recognizing commands in a chat if prefix is optional
Add err-markovbot to built-in list of plugins

err-markovbot is (oh surprise) a markov chain bot you can
see at https://github.com/MaxWagner/err-markovbot
Because no chatbot is complete without a markov chain.