Fixed some bugs, mostly warnings, and significantly improved the performance of this module. Very large reports can now be generated without php memory crashes. However, the web page size of very large reports moves the bottleneck out of php and into the browser's ability to load pages with large amounts of data. I suggest pagination as a solution to this particular issue. I tried to minimize the number of changes made to the code base prior to committing. This code, prior to minimizing changes, is already being used on a production server at wheaton college. The minimizing changes shouldn't have significantly affected the impact of this commit aside from avoiding changing files where not necessary.

classes no longer being used:
- DynamicObject
- ReportGroupingColumn //unnecessary
- ReportSum //unnecessary

For sql database usage, the mysqli extension is used rather than raw function calls that lacked necessary functionality

I gutted the Object and DynamicObject classes because as far as this module is concerned, they made the code much more complex while having significant function call overhead for things that can be more easily done in child classes. I found the complicated type hierarchy to be an obstacle in improving the module.  I can't remember why I kept the Object class as it is now empty, but I probably ran into problems when I tried removing it altogether.