Changed data output system

Removed the ability to output data to ascii files. Instead, all
output data is stored in a ROOT TTree and is written to a root
file. There are two possible trees included in this file. "VIKAR"
is the standard output tree and contains data for ejectile and
recoil particles. Entries are only written to this tree if an
ejectile is detected in one of the detectors. "DEBUG" is an
optional tree that contains generic debug information. Entries
are written to DEBUG every iteration regardless of whether or not
a detector saw an event.
Upgraded to ROOT output

Removed ascii file output and introduced new .root file
output. All of the original variables are included in the
root output file.

Included a new tool named 'Kindist' which calculates
kinematics curves for a given reaction.
Fixed range table issue for Neutrons

Fixed the dEdx problem for neutral particle interactions
with targets. The program will no longer calculate range
tables for neutral particles to avoid an infinite loop.

Renamed planar.h/cpp to detectors.h/cpp in preparation
for adding new detector types in the future.

Added materials.h/cpp to handle all particle/target
interactions. This includes range tables, detector
efficiencies, and target calculations.
V1.11

Included beamspot effects to the simulation. Added
cylindrical and conical beam shapes (via a new parameter
in the input file named 'beam angular divergence'. For
both beam types, the program will calculate a random
vector within the beam that intersects with the target.

The target now includes a planar object to make it easier
to calculate beam particle intersections with the target.

Planar now supports tracing of rays which do not originate
at the origin. This makes it possible to trace rays from
a target of non-negligible size.

The Target class now handles angular straggling instead
of using separate functions from vikar_core.

RangeTable now stores particle ranges in meters instead of
mg/cm^2. This was necessary since all of the geometry is
now measured in meters.

TO DO:
 Fix Target::AngleStraggling() and transform() to get them
 to accept cartesian vectors instead of polar angles.

 The reaction vectors should now be considered rays which
 originate at the reaction position inside the target. They
 no longer originate from the origin.