Fixes #2414 - Move puppet report processing code to the report processor

This creates a API route for POST:/api/reports which matches the GET
format for reports. Tests are updated, with the report model tests
moving to the puppet-foreman module (along with the report fixtures).
Fixes #3030 - require facter where necessary
fixes #1923 - matches vms on a compute resource to hosts
Fixes #3045 - Skip empty log arrays
fixes #1871, #1879 - add VPC support to EC2 compute resource

Based on patch from Romain Vrignaud <romain@yakaz.com>
fixes #2288 - Add oVirt/RHEV Quota Support
fixes #3046 - add NIC CRUD, power and boot operations API
fixes #1853 - Users now have a new filter to subscribe to new hostgroups
fixes #1719 - Add support for GCE(Google Compute Engine)
fixes #2996 - VM show screen syntax error on ruby 1.8
fixes #2944 - nic type selection for libvirt

defaults to 'virtio'

I needed this in my own setup because virtio was being buggy and would
crash my apt mirror VM. switching to e1000 fixed.

I don't particularly care for the device models being hardcoded. I would
of course prefer that it be queried from the libvirt itself, but I don't
see a way to do that.
Fixes #1848 - Link non-zero report summaries to the equivalent report search
fixes #3051 - Adds rake task to import puppet environments