* Delay onInit() invocation until after the node has been registered with the cache.
Two advantages: first, we won't call onInit() on nodes that are bound to be
thrown away because a clone already exists in the cache, and second no need
to cache nodes in the transactor clean node map, which was troublesome in
exactly the same case.
* Remove some old code that has been commented out for ages.
* Factor out invokeOnInit() method from Node.init() in order to implement onInit() invocation
for the embedded database.
* Make properties starting with an _underscore transient in the embedded database,
mirroring the behaviour of the object relational storage.
* Keep filter.additionalTables from being included in prefetchNode() queries, fixing bug 472.
* Some minor code cleanup and simplification.
work in embedded db
When a property is encountered that *might* not be suitable as XML element name,
we use "property" as element name and add the real property name as attribute to
that element.
generally faster than DOM because it doesn't report an intermediary DOM tree, but
reports parsing events directly to the application.
XmlDatabase now uses a separate, special purpose XmlReader called XmlDatabaseReader
which parses only one-level HopObjects and generates NodeHandle objects
for all references.