use getattr() with default intead of hasattr()

When asking for the query attribute, use getattr('query', None)
rather than hasattr('query').  This prevents errors if a 'query'
attribute is available but empty or None.
use message-id instead of str(message) in logs

Using message-id in log messages makes it easier to identify individual
messages.
qualify list-id when generating tags

Using an unqualified list-id as a tag name allows anyone sending you
mail to set arbitrary tags on messages.  This patche puts all list tags
in a 'list/' namespace.
tags_blacklist is a list

treat tags_blacklist like tags: read it from config with get_list() and
specify it as a list in class definitions.
added missing register_filter function

This permits registering a custom filter class using the register_filter
decorator.  For example:

    from afew.filters.BaseFilter import Filter
    from afew.FilterRegistry import register_filter

    @register_filter
    class MyFilter(Filter):
        pass
lowercase generated tag names

Rather than using header values verbatim, pull everything to
lower case when generating tag names.