Renamed fmesh_card struct and its members to be less MCNP-centric
Removed fmesh_index variable from MeshTallyInput struct
Changed energy_bin_bounds into std::vector from pointer to Fortran array
Cleaned up MeshTally implementation and structure

* Added more detail to comments
* Renamed MeshTally::ebins to MeshTally::num_energy_bins
* Renamed MeshTally::fmesh to MeshTally::input_data
* Added new virtual functions for common mesh tally operations
Finish cleaning up MeshTally code and added more detail to comments
Adding TallyEvent class to represent abstract physics data interface
Replacing original KDE tally parameters with TallyEvent objects
Replacing original TrackLengthMeshTally parameters with TallyEvent objects
Moved mcnp_weight_calculation calls to meshtal_funcs.cpp
Added a pure virtual compute_score function to MeshTally

* Combined tracklen and kde_track into one track_tallies array
Modified TallyEvent public interface

* Added collision and track data structs
* Added const access functions to read physics data
* Removed friend classes
Adding KDENeighborhood class for defining neighborhood region functionality
Moving points_in_box function to KDENeighborhood from KDEMeshTally
Moving point_within_max_radius function to KDENeighborhood
Moving particle weight/energy data to TallyEvent constructor
Moving KDECollision functionality to KDEMeshTally
Moving KDETrack functionality into KDEMeshTally
Merged compute_score and get_score functions and changed estimator names
Adding random number seed as valid input option for KDE sub-track tallies
Adding get_weighting_factor function to TallyEvent class