Fixed PerformanceTests.setupOutputDir to work with UNIX and Windows
Reworked Map.materializeConstraints

materializeConstraints was identified to be causing a non-linear
increase in time complexity.

This has been resolved by re-designing the method.

Now,
- materializeConstraints calls map.pushDownConstraints
- pushDownConstraints does its thing and calls itself recursively
Removed use of java.util.Properties from PerformanceTests class

The internal PerformanceTests.Statistics class is used instead

Fixed a missing 'out.close' in Statistics.store method