Restructured things, moved type/Types to top-level and cleaned up object module
Cleaned up EnhancedEvent and fixed private vars which were on the interface
Re-implemented events.htm testing page
Updated Debug to execute methods when passed a method name ending in "()" to its properties array
Renamed get -> getElementRaw and getWrapped -> getElement
Refactored ElementUtils into EnhancedElement and EnhancedHTMLElement

* First is the split between enhancements to Element and HTMLElement, it makes it easier to enhance each interface individually but the HTMLElement enhancements all extend the Element ones
* Everything has been returned to instance methods on a class instead of functions hanging on a module, this makes it easier to copy the methods to prototype or explicitly copy to elements.
* There are internal interfaces for the enhanced methods and public interfaces that combine the internal ones along with Element or HTMLElement as appropriate
bug fixes
Fixed non-optional function arg
Restructured project directories and converted testing code to TS
Changed enabling order of element enhancement methods
Implemented static methods for all EnhancedElement instance methods
Implemented EnhancedHTMLElementCollection
Improved and fixed testing code
Added enhancePrototype() method for Array
Added custom interfaces for all HTML methods
Removed internal interfaces from Enhanced*, public interfaces now implement the class
Moved JsonParser up a module
added isAncestor()
Removed gulp entirely and switched everything to grunt
added getAncestors() and find() methods to EnhancedElement