Attribute overload fix
Large rewrite

* Switched to DOM for form parsing - allows JS to not have to be surrounded in CDATA, and DOM-style operations on the form in the future
* Added a prototype api
* DynamicPrototype generator for proxy prototype listener instances
* Rendering system - no longer needs overriding
* More widgets - menus, images and more