Attribute class: parse / emit formatted attributes

This implements a powerful Attribute object that allows for easy
conversion between different attribute representations.

The original `pandocfilters.attributes` function has the same behaviour
as before.

Can read and write attributes in any of these formats:
    - markdown
    - html
    - dictionary
    - pandoc

usage:

    from pandocfilters import Attributes

    attrs = '#id .class1 .class2 key=value'
    attributes = Attributes(attrs, format='markdown')

    attributes.to_markdown()
    >>> '{#id .class1 .class2 key=value}'

    attributes.to_dict()
    >>> {'id': 'id', 'classes': ['class1', 'class2'], 'key'='value'}

    attributes.to_html()
    >>> id="id" class="class1 class2" key='value'

    attributes.to_pandoc()
    >>> ['id', ['class1', 'class2'], [['key', 'value']]]

    attributes.id
    >>> 'id'

    attributes.classes
    >>> ['class1', 'class2']

    attributes.kvs
    >>> OrderedDict([('key', 'value')])

    attributes['id']
    >>> 'id'

    attributes['classes']
    >>> ['class1', 'class2']

    attributes['key']
    >>> 'value'

    attributes['new'] = 'another value'
    attributes['new']
    >>> 'another value'