Proper handling of TESTCODE conditional in Projection class
Fix memory leak in Hitpattern::ScanHits (delete retval of MakeIterator)
Add reconstruction failure reason codes "trkstat"

This variable is available in Tracker, Projection, and Road.
If trkstat == 0, at least one track was successfully reconstructed
in the respective stage. For trkstat > 0, see the header files
for enum ETrackingStatus. These variables assist with investigating
tracking efficiency problems.

In Tracker, "trkstat" replaces the "fail.nhits" and "fail.npat"
status variables.

Also, each Road now reports the 2D fit results even for "failed" fits
(bad chi2). As before, for failed fits, Road::IsGood() is false.
This allows inspection of the entire chi2 distrubution, for example.
Also, clean up the meaning of Road::fGood. It indicates fit success/
failure only, not a build failure (bulding can never fail anyway).
Export plane pattern of best Road fit (good or bad) as "pat"
Minor cleanup in Tracker
Let Tracker print values of flags read from the database during Init
Convert the MC hit classes to the new Podd simulation data interface

Also, if requesting MC data decoding, verify that the decoder really
is a simulation decoder. If not, throw Tracker::bad_config.
Make Projection::bad_angle an invalid_argument exception, not range_error
Implement analysis of MC truth information in GEMPlane::Decode
Move definition of Node_t to Hit.h (since it needs HitSet)
Remove leftover old definition of GetTrackerSafe in Plane.h
Let Tracker::ReadDatabase catch all exceptions from MakePlane
Clarify comments in GEMPlane::ChargeDep
For MCdata, update hit info in MCTrackPoints supplied by the SimDecoder

Still to do:
- Update with info from both nearest hit found and actual MC-matching hit.
  If nearest hit != MC-matching hit, indicate this in the status (~soft fail)
- Update track info (reconstructed vs. true track points).
  Much harder because there can be multiple reconstructed tracks.
Fix BAD bug in GEMPlane::ChargeDep

No idea why amp[0] == 0 or amp[1] == 0 should cause failure. This
sneaked into the SBS version on Mar 29, 2011.
Pick up EVIO includes from $EVIO_INCDIR or $EVIO/include, if set
Toss out unnecessary std::map in GEMPlane::Decode, replace with vector<int>
Rename GEMPlane::fNsigStrips -> fNrawStrips for consistency

"hit"  =  strips with signal coming from decoder
"raw"  =  strips with signal after deconvolution & noise filter
"sig"  =  strips with signal above fMinAmpl
Improve error message for exceptions during initialization of planes
More efficient and detailed decoding of GEM strip hit data

The MCHitInfo per strip (or wire) is now held in a member array of the
Plane base class. This array must be allocated by the specific plane class
using it. Currently, only GEMPlane does that, not yet WirePlane.

The big fADCsamp member vector in GEMPlane has been replaced by a local
vector that is reused for each strip as it is being decoded.

ChargeDep now integrates both raw and deconvoluted ADC samples. Integration
is always done, even if the pulse shape check fails.

The integral of raw ADC values is stored in fADCraw ("strip.adcraw").
The pedestal and noise-subtracted deconvoluted ADC sum fADCped has been
replaced by fADCcor ("strip.adc_c"). The result of the pulse shape
check is stored in fGoodHit ("strip.good"). "rawocc" has been replaced by
"hitocc". Two new counters are available, "nrawstrips" and "nhitstrips".
They should be the same unless the decoder reports hits with data = 0.

No second loop over all hits is run if no noise subtraction is requested,
which should speed things up.

TODO:
- The pulse time is still not calculated (this requires fitting the
pulse shape in some way).
- WirePlane should make use of MCHitInfo as well