create-element accepts attributes

Common use-case of `create-element` is followed by `set-attr!`. This adds an
optional argument to `create-element` to pass a map of attributes to be set on the
returned element.

BREAKING API change: `create-element` no longer creates namespaced elements. A
separate `create-element-ns` function has been created to explicitly create these.