PEP8 cleanup

Tabs to spaces, 2 lines before classes, etc.
Allow text to be passed in element call

As well as the orginal form:
ns.tag({'complex.attr': 'value'}, attr=4) >> 'text'
we can now use:
ns.tag('text', {'complex.attr': 'value'}, attr=4)
or:
ns.tag({'complex.attr': 'value'}, 'text', attr=4)

All the above forms will generate:
<tag attr="4" complex.attr="value">text</tag>