Support new empty-element syntax + two-pass rendering.

Converts xmlwitch to support both old & new style empty-elements:

    xml.img(None, src="http://server/image.jpg")
    xml.img(src="http://server/image.jpg")

To properly handle & format ambiguous invocations of __call__ with or without
__enter__, this also introduces "two-pass" rendering: first an XML data
structure, then render to text.
Fixed bug and added missing test for element w/ child + content.

The code path handling a structure like below was not covered by unit tests:

    with xml.div("Content"):
        xml.img(src="http://server/image.jpg")