Add a create_report method to IPSJob

This will allow subclasses to generate different types of reports.
Split IPSJob into separate file

The ips.rb file is getting pretty long, let's pull IPSJob into it's own
file!
Add consistency between warmup and run

The warmup and run functions in IPSJob were listing the setup methods in
different orders, in particular the Timing.clean_env wasn't always being
called right before the test began. Ordring things to be consistent
between the two methods.
Fix speeling
DRYing up Maths

There were a few places where some timing math was scattered about.
Pulled these equations into their own methods, and added more explicit
units onto variables. Also pulled out some conversions into constants.
Add timing and reports instance vars to IPSJob

Since the timing and reports objects were being passed around like a hot
potato, seemed better to have them be instance variables on IPSJob and
have that class manage them.
Pull IPSReport into its own file

I have plans to increase the responsibilities of IPSReport, pulling it
into its own class.