Extract Table Printing Logic

Moves repeated table print logic into a class. Also moves the report classes for policyfile install and upload to their own part of the file hierarchy (and namespace), and adds tests for them.

/cc @opscode/client-engineers 
Named arguments. I could be going a little overboard with them, but I think they read better when you are calling the method from code in another file, e.g., `Policyfile::Reports::Install.new(ui: @ui, policyfile_compiler: self)` looks more obviously "right" than `Policyfile::Reports::Install.new(@ui, self)` even if it's a bit more typing (IMO).