Updated documentation and cleaned up various comments. Overhauled how element attributes are passed, checked, and applied to elements. Use bits of reflection to automate this as well as to automate assigning all of the attribute instance variables.