Switch to python 3.4 enums.

Our home-brewn enum wasn't really liked by pylint (many no-member errors), so
instead of adding some workaround, we just use the python 3.4 enum instead.

This however also means we need to depend on Python 3.4 and not 3.3. Maybe we
should use enum34 on Python < 3.3.
Fix lint
Use enum for keyboard modes.
Add some type checking for enums
Use enum for completions
Don't explicitely fill commandline
Add userscript/spawn targets to hints.
Simplify userscript running.