Switch to using c3.large testing instances

This switches us over to the newer c3.large instance types in EC2. After some
testing I've found these boxes are much faster and can complete our tests at
a faster rate. Not only that for pricing they are priced at $0.105 versus
$0.130 (c1.medium) per instance hour.

And since c1.medium are now in the 'previous generation' bucket, best to switch
away anyway.

Signed-off-by: Ken Barber <ken@bob.sh>
(PDB-900) Make performance improvements to fact_values GC process

Switched from a background thread to cleanup orphaned fact_values to one
that deletes as it goes. Switching to deferred constraints also
significantly improved performance on PostgreSQL. The same facilities are
not available in HSQLDB, but I have alternate queries that work, though
will likely not be as fast.
Mention that a -contrib package is required when install pg_trgm

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #1092 from kbarber/maint/stable/switch-to-c3-large-instances

Switch to using c3.large testing instances
Merge pull request #1096 from kbarber/maint/stable/mention-postgresql-contrib

Mention that a -contrib package is required when install pg_trgm
Merge pull request #1094 from senior/ticket/stable/pdb-900-fact-value-cleanup

(PDB-900) Make performance improvements to fact_values GC process
Merge branch 'stable'

* stable:
  Mention that a -contrib package is required when install pg_trgm
  (PDB-900) Make performance improvements to fact_values GC process
  Switch to using c3.large testing instances

Conflicts:
	src/puppetlabs/puppetdb/scf/storage.clj
Missing opening ( during last merge-up from stable

Signed-off-by: Ken Barber <ken@bob.sh>
Try reverting to c1.medium

After the change to c3.large we started to see intermitent issues with tests,
this patch is to just test the theory that it might be the box change
somehow changing the timing characteristics or some such. We're not 100%
so we might need to revert this also.

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #1100 from kbarber/maint/master/try-reverting-to-c1-medium

Try reverting to c1.medium
(PDB-882) Setup basic facts performance testing

This introduces our first pass at performance testing, in particular we have
targetted loading structured facts.

The benchmark tool is now capable of using a series of provided fact JSON files,
so we can use that tool for this purpose. We've also provided a set of basic
seed files for these tests.

The tooling: `rake test:beaker` has now become `rake beaker:acceptance` and
performance tests are started using `rake beaker:performance` instead.

The testing introduces a new host configuration specific to this work, in particular
we are using a single c3.xlarge instance. This is isolated from the acceptance testing
one so we can tune this on its own.

This also fixs a number of side issues:

* benchmark -h was broken, now fixed
* The -rp switch no longer worked, this has no become -r
* Some of the client based stuff was strewn around our code base, its now
  centralized in puppetlabs.puppetdb.client

Signed-off-by: Ken Barber <ken@bob.sh>