Sessions now store a bounding box which nicely limits the search space.

I still want to be able to speed this up a lot somehow
Fixed upgrader not working correctly when handling upgrades not changing
records.
Fixed bug with RecordList using a reference to an inventory record when
getting the current inventory
Fixed a bug in search task with noLimit
Made errors on log load only show in debug log
Made cross reference index able to lock the file. Logfile uses GRF
directly
Changes:
+ Tasks can now report progress
+ SearchTask now reports progress
* Changed Searcher to use the callbacks instead of polling
* Searcher can display partial results
* SearchTask now searches more efficiently
Fixed searching for multiple causes resulting in no results
Added a limiter so that specific record types being searched for only
look in specific causes.
Added a plain search mode to FilterConstraint to use if there is no need
for regex
Fixed % in a record causing an error on display
Added chunk indices to both LogFile and GRF

Sessions can optionally store what chunks they have data in
the ChunkIndex in the GRF contains lists of session ids to chunks
Fixed some issues with chunkIds
Added more debugging stuff for the new additions

Still trying to track down an EOFException with chunklists
Bug Fixes:

Fixed FileEntry attempting to read more than it should, added version
dependent read.
Fixed ChunkList consuming too much space
Fixed sessions not being added to all relevant chunk lists.
Fixed search cause filter not allowing you to search for #tnt pulling up
all #tnt records

LogFile.getStartDate() now reports Long.MAX_VALUE as the date if there
are no sessions
Added proper descriptions for constraints. No more "Rollback of null by
null"