commands.py: Rename 'isGranted' to 'haveHalfop+' and add 'haveVoice+'.
Factoids: Add supybot.plugins.Factoids.requireVoice. Closes GH-378.
httpserver: Add doctype.