(maint) Use real types and providers to exercise post_resource_eval

Previously, the spec tests were using the `user` type to test
post_resource_eval, but this has the side-effect of enumerating all of
the users on the system. On Mac OSX, this takes upwards of 4 seconds due
to parsing plist info.

This commit adds two new test-specific providers, which override the
`post_resource_eval` method, like a real type would do.
(maint) Use transaction_with_resource helpers to build up catalog and transaction

Cleanup the test to reuse the helpers that build up the catalog and
transaction. Eliminate instance variables of the form `@transaction` as
these can and should be local to the rspec example.
(PUP-1843) Clean up hiera terminus

The data_binding/hiera_spec.rb had a specific after block to clear up
the hiera terminus for following tests.  Moved this to the
shared_behaviors/hiera_indirections so that both indirector/hiera_spec
and data_binding/hiera_spec would be cleaned up, preventing order
dependent errors caused by global terminus state leaking between tests.
Merge branch 'maint/master/transaction_spec'

* maint/master/transaction_spec:
  (maint) Use transaction_with_resource helpers to build up catalog and transaction
  (maint) Use real types and providers to exercise post_resource_eval