Logging out from 'account' session/user preferences is a forseeable operation,
so it should better not raise an error. Thanks to Scott for reporting it.
Now, redirect unauthenticated requests to general preferences should be safe.
I've removed some code, that was meant to cope with this situation beforehand,
but it seems to never be reached before Trac decided to error out.

Samuel Halliday noticed an issue when using TagCloud without arguments.
This is the code change I suggested in an email response before, that has
already been confirmed to fix this issue: In new code kw is always defined.

Central definition in the AccountManager module is not only more
straight-forward, now actions are guaranteed to exist even with admin panels
disabled.

As a side-effect this fixes irritating ACCTMGR_USER_ADMIN duplicate entries
in the permission select box as seen i.e. in Trac 0.11.

Added unit test to ensure this works expectedly, and added a more intuitive
inheritance of EMAIL_VIEW by ACCTMGR_USER_ADMIN too, that was missing
because of wrong syntax in AccountManagerAdminPanels.get_permission_actions
before.