Finished modifying the workload generator (main app).

The first thing I changed was making the Random class abstract
allowing for different implementations.

I changed the logging mechanism by defining a macro called clogf.
This macro runs the Log.logCheck() function before calling the
Log.logf() function which doesn't call logCheck() anymore. The input
parameters to the various calls to logf() were causing HUGE overheads.
Now they won't occur when the logging isn't occurring. This gave about
10x speedup.

The main app now uses the OS querying abilities to discover destinations
for reply entries and prvilege checks. This should have much better speed
in comparison to the old pick a random and hope method. Need to test
the parsing and input settings.