Move ivars to accessors and support non-standard report types

This pull request has some general code changes related to using attr_readers or methods instead of instance variables but it also alters the ReportFactory to use class methods and to allow non-standard report types.

This is a few steps toward a general refactoring that I'd like to do to support alternative hosts other than localhost and sauce labs.

Is this acceptable? Should I alter this pull request in any way to break this up more?