fixes #3205 - Extract and refactor report importing logic

This patch extracts all report importing logic into seperate importer and status classes.
long term this could allow:

1. aliases methods for async operations
2. different types of reports imports (based on reporting type).
fixes #3550 - correct HTTP method for puppet class import API
fixes #2951 - Host API documentation lacks compute_resource_id
Tweaks to gitignore
Fixes #3182 - Make IP optional in some circumstances
Fixes #3196 - Switch tokens to default to on
fixes #3568 - adding Facter gem to bundler config
1009560 - do not treat `params[:dryrun]` with value `false` as true