Improved DOM API, cleaned up some variable naming

* HTMLElements now have get/setAttribute methods
* Load events can be added or removed via the
 .add/removeEventListener API
* Load event provides a shell event object for script tags
* .getElementsByTagName actually searches for the appropriate tagNames
* .tagName is now uppercase, like it is in a browser
Merge pull request #409 from amadeus/eject-js-updates

Improved DOM API, Cleaned up some variable naming