Added comments to Statistics and Analysis
Test xml parser. Doesn't check for tag name misspelling, but will parse an arbitrarily complex document. Tag names must be unique though! This may cause a problem in the future, something to discuss.
Merge branch 'master' of https://github.com/agiron123/3DPhotovoltaics
Merge remote-tracking branch 'origin/master'
OutputSettings and GraphSettings objects.
Implemented Cylinder.py's get_collision(); Testing is still required.
Implemented Plane.py's get_collision(); Testing is still required.
The following were implemented:

Walls: Implemented / fixed all of the math behind every wall class, specifically:
     -Wall
     -Plane
     -Cylinder
     -Floor
     I looked over the math several times and some basic testing has been done to confirm it. See BasicTests.py

 Tower: Implemented / fixed all of towers get record method and init method. This caused several changes to record also.

 Record: Cleaned up how Record is being used to pass information throughout the simulation. These changes are seen in almost every other class changed in this commit.

 Orbit and SimpleOrbit: Subclassed Orbit with SimpleOrbit to provide a basic generate_photon method while we are still working on the real one. This generate_photon method uses spherical coordinates and is basically a port of Christian's processing code.

 walker_parser and validation.xml: Added a validation XML file which contains the proper tag names and datat types for each tag name. walker_parser now contains an xml validation method which can determine whether the inputted xml is valid. If the xml is invalid the user is pointed to the exact  place where the problem is.

 Simulation: Cleaned up the main loop some in accordance with other changes that were made

 Photon: implemented wrap around
Merge branch 'master' of https://github.com/agiron123/3DPhotovoltaics
Few last changes. Nothing much different from the last commit.
Merge branch 'master' of https://github.com/agiron123/3DPhotovoltaics
updated Analysis.py, Stat.py, and Statistics.py
fixed merge errors in Analysis and Statistics