New parameter structure, performance improvements

1. No more parameter shuffling. We shouldn't be working to figure out
what the author already knows. For elements with content and no
attributes, the first parameters should now be `null`.
2. Add support for template elements, and a much more thorough approach
to attribute values.
3. Eliminate document fragment creation. They are not a standin for
Elements because they empty when they are used. Creating a wrapper
element is perfectly acceptable.
4. Remove hackish, documentFragment-based Promise support.
5. Content is now a spread parameter. This avoids unnecessary `Array`
creation and reduces typing a little. The idiomatic reason for it is no
longer relevant, as it was initially meant to correlate to the creation
of a document fragment.
6. Nested `Array`s are no longer flattened, but simply iterated over.
7. DOM can now be used with JSX. Still unsure if JSX is the best
approach, but no sacrifices were made for support.
8. README rewrite and expansion.