remove old unread-related code completely
add config option: auto_remove_unread
implement autorm-unread

this reintroduces the automatic removal of 'unread' tag.
Instead of doing it when unfolding a message, it is now
done whenever the cursor us moved to a non-summary part
of the displayed message.

Also, it is dependant on the (new) config option 'auto_remove_unread'.
doc: checkin autogenerated docs for auto_remove_unread
pep8 fixes
fix issue with concurrent db writes

This makes sure that
1. ThreadBuffer.render does not cause unboundedly recurr
  and tries to write to the index multiple times when the index is locked.
2. makes sure that these writes - caused by our overwritten .render method -
 do not cause a change in the ui-layout by triggering notifications.
 This would confuse urwid and kill the UI.

 fix #583
prevent accidental remove-unread operations

This ensures that explicit tag-unread commands
are not reversed upon the next keypress due to the newly
triggered auto-remove unread.

Also, this replaces a global write lock with message-local
write locks for this feature, allowing to browse through
multiple messages and auto-reming the unread tag even if the index
is locked
Merge branch '0.3.4-feature-autounread'
change cmd repeatability to be command prop and make move cmds non-repeatable
repeat complete command lines

furthermore, the special treatment of individual commands has been removed