Add Firefox support in Makefile.PL like Gtk2::MozEmbed does.

Split DOM.xs into separate files. (DOM.xs > 19000 lines at last count)

Constants are currently broken. I hope nobody's using them.
Need to work out how to export constants from various packages.
I think they should be useable like

  ... if $event->GetEventPhase == $Mozilla::DOM::Event::AT_TARGET;

or

  use Mozilla::DOM::Event qw(:phases);
  ... if $event->GetEventPhase == AT_TARGET;

however you can't `use Mozilla::DOM::Event':
"Can't locate Mozilla/DOM/Event.pm in @INC ..."
It must not be that hard to fix..

Make some methods more perlish. For example,
GetElementsByTagName returns a NodeList,
but it would be nicer if it was a list of Nodes
(or (HTML)Elements...) in list context.
Also, some method arguments could be made optional.

Figure out DOMException.
I'm not sure if DOMException is even relevant from C++,
as I think integers are always returned on failure.
(need to verify)
There isn't any error checking at the moment..

Wrap interfaces like a maniac.
nsIDOMSVG*, CSS*, XPath*, and XUL* anyone? Heh,
maybe those should wait till after I split DOM.xs apart.
Check out content/base/src/ns*.cpp and dom/src/base/ns*.cpp.
What is EventReceiver? WebProgressListener?

Can IInputStream be gotten from IDocShellTreeItem ?
# XXX: embedding/6496.txt how to create StringInputStream,
# though I think it's changed to ByteArrayInputStream now;
# see embedding/6662.txt.


Find a reference for different interfaces of each class
(DocumentEvent for Document, etc.), what interfaces are
valid to switch to with QueryInterface. It looks like I have
to scour Mozilla's .cpp files. I did
find . -name '*.cpp' -exec fgrep -H _MAP_ {} \;
which seems to kind of list QI-able interfaces.
See dom/src/base/nsDOMClassInfo.cpp.

Mozilla::Automate - I was going to call it Mozilla::Mechanize
and have an identical interface to WWW::Mechanize, but recently
I'm thinking that would be too restrictive. WWW::Mechanize
is great as a coating on top of LWP::UserAgent, but what more
can we do with full DOM access?

Fill out missing documentation.
Document how to add this to a module using ExtUtils::Depends.

Tests....
