add repeat command to make the same action again

The UI object now saves the last executed command (except for
RepeatCommands themselves and Promt- and FlushCommands, since they are
not user invoked, intended actions). The RepeatCommand then applies the
stored command again.
This is comparable to the . in vim, so I would recommend you add this
line to your config ;)

. = repeat
add '. = repeat' to default key bindings
remember and re-interpret command*line* for repeat

... commands. At some point we might want to add a command
history for an undo feature. For this I'd keep a history of
the applied Command objects and in reverse order call its .undo() method.
For this to work we need one Command object for each application.
If however we re-use a Command object using 'repeat' we'd most certainly lose
local information on how to undo the first application..
add hooks [pre|post]_buffer_[open|close|focus]

cf issue # 563
document new hooks
fix: forgot buf parameter for post_buffer_open hook
re-introduce redraw parm to UI.buffer_close

.. which got lost during a previous rebase
allow asynchronous pre/post command hooks

also, with this a pre-command-hook can cancel the further
execution of the command by raising an Exception.

cf. issue #395
doco - package names for fedora-based distros
Merge pull request #572 from lzap/fedora-docs

doc: package names for fedora-based distros
fix #571
Merge branch '0.3.4-fix-571'
correcting error message for theme

When there was a theme parse error, alot was producing incorrect exception:

in read_config raise ConfigError((err_msg % str(themestring)) + e.message)
TypeError: cannot concatenate 'str' and 'ParseError' objects
Merge pull request #573 from lzap/theme-parse-error

correcting error message for theme
adding ctags to gitignore
Merge pull request #574 from lzap/tags-gitignore

adding ctags to gitignore
fix #575
Merge branch '0.3.4-fix-575'
added foreign submodule
added submodule for urwidtrees lib