Cleaned up the code prior to refactoring

Interface Changelog:
	*Changed the name of Rectangle to BoxTree
	*Modified the order of the parameters for the BoxTree - was (maxx, minx, minz, maxz), is now (minx, maxx, minz, maxz).
Removed offset parameters from all BoxTree methods

Interface changelog:
	*Any methods of BoxTree that once took a parameter named `offset' no longer takes it, BoxTrees are now created from the area they represent instead of at the origin.
Cleaned up code further, factored out Rectangle

Full interface changelog:
	+Added Rectangle, a class that represents a 2D rectangle.
		+Has Point members tl and br

	*Replaced the tl and br members in BoxTree with a Rectangle member rect.

	-Removed splitVertically. (It is now a variable local to BoxTree.split())
Moved the fill Function from BoxTree to Rectangle
Cleaned up and refactored the code.