Digitization: Efficiency improvements in AvaModel and IonModel

No longer fill ROOT histograms to do a simple numerical integral.
Avoid parallel arrays that are allocated for each event. Instead use
vectors of a single structure whose size is reserved on construction.

Also, change types of anything holding ADC sums Int_t, not Short_t.
Clear MC tracks only if TSolSimEvent::Clear(opt) is called with opt="all"
Require filename for TSolSimFile constructor

Needed to implement a default constructor.
Read relative readout plane z-position xrout.Z() from database

This removes one of the several hardcoded parameters in the code.

Also, require that all database keys be present. None are optional.
Obviously, the digitization database db_ratedig.dat, needs an
extra key, ratedig.zrout = 9.19 # (mm)
Change hardcoded decoder parameters to match 5-plane simulation input
Store chambers in a vector, not a TList. Random access is really needed here ;)

Also, change TSolSpec::AddGEM paremeter to a _pointer_ to a chamber object.
This requires changes to replay scripts (less awkward syntax).
Rewrite Digitize for more efficient background accumulation

Drop TSolGEMData::AddGEMData, so scripts only ever need to work with
a single static TSolGEMData object instead of dealing with returned pointers
that need to be deleted for every event.

Add new AdditiveDigitize method that works just like Digitize, but
adds hits to the existing ones. The script flow would be like this,
for example:

InitTree
open signal file
SetSource to 0
for all events in signal file
  GetGEMData for event
  SetTreeEvent
  Digitize( GEMData )
  for all background files
    open background file
    SetSource to background file number (>0)
    for all events in current background file
       GEtGEMData for event
       AdditiveDigitize( GEMData )
    next event
  next background file
  FillTree
next signal event
WriteTree
CloseTree
close signal file

Also, properly simulate the signal and background trigger time.