def report(print = true)
      if @churn_options.history
        generate_history
      else
        emit
        analyze
        remote_report
        print ? self.to_s : self.to_h
      end
    end
def report(print = true)
      if @churn_options.history
        generate_history
      else
        emit
        analyze
        remote_report
        print ? self.to_s : self.to_h
      end
    end
intialize the churn calculator object
 prepares the data for the given project to be reported.
 reads git/svn logs analyzes the output, generates a report and either
 formats as a nice string or returns hash.
 @param [Boolean] print to return the data, true for string or false for hash
 @return [Object] returns either a pretty string or a hash representing the
 churn of the project