Optimization of the file reading. Reading from the database is MUCH faster. XL2SortedSet and XL2SortedMap were allowing duplicate entries. Removing the last item of an XL2List was failing. The synchronized wrappers in XL2Collections were not using a serializable mutex.
Subsets now use non locking references.
The memory cache used a custom hash set which could incorrectly compare two element's hash codes. The bug would occur when subtracting one hash code from the other resulted in a value less than Integer. This was a very subtle and nasty bug. While XL2Database provides the hooks for subclasses to manage serialization, there was no easy way to create a database using the subclass. Added new logging methods to XL2Database.