Lots of improvements.

- All explicit lifetime specifiers have been removed. They are no longer needed.

- There are now Element, Document, DocumentFragment, and Text objects which "inherit" from the Node object via traits and inner objects. CharacterData is not involved yet.

- Serializer was updated to support text nodes. Parser doesn't support them yet.

- All the node types are now created by document via create_element(), etc.

- There is now an Implementation object which creates documents. No need to instance the individual objects directly.

- The way nodes are passed now involves explicit casting to a trait. I hope to find a simpler way to do this.

- Parent node references and child node references are now of type NodeType, which is an enum of all the node types.

- Element.children was removed in favor of .child_nodes so that text nodes are accessible.