(PUP-1106) Unschedule refreshes on skipped resources

If a given resource is being skipped (e.g. has failed dependencies, is
unscheduled, untagged, etc) that resource should not trigger any
additional behavior. However a resource could be skipped and still have
events trigger behavior. This commit changes the event processing logic
to only process events for resources that should be applied and dequeues
events on resources that should not be applied.
(maint) Use correct data type when unscheduling events

Commit 9d59f204 added the ability to dequeue events on a given resource,
but it did so by setting the value of the target callbacks to an empty
hash. However the value of target callbacks is an array, so if events
were re-queued for a given resource we would get an error like so:

    {}.concat(%w{one two three})
    NoMethodError: undefined method `concat' for {}:Hash

Currently we can't requeue events after dequeuing events, but if this
changes then this code is very incorrect.

This commit fixes the event reset to behave as expected.
(PUP-3654) Deprecate Puppet.newtype

The `newtype` class method of the Puppet module includes a comment from
2011 stating that the method should be deprecated, but was under heavy
use at the time.

This commit adds a deprecation warning to this method to indicate that
it will be removed in a future release. Types using the old method have
also been updated to use `Puppet::Type.newtype`.
(PUP-3666) Add settings for http connect and read timeouts
(maint) Deduplicate spec helper methods
(PUP-3666) Respect http timeout settings for Forge
(PUP-3666) Deprecate and redirect configtimeout
(maint) Use Ruby 1.9 for Solaris acceptance tests

Prior to this commit, pre_suite for Solaris templates would install Ruby
1.8. This commit installs Ruby 1.9.3 on our Solaris 10 and 11 templates
as part of the Ruby 1.8.7 deprecation in Puppet 4.0.
Merge pull request #3317 from rji/maint/master/solaris-use-ruby19

(maint) Use Ruby 1.9 for Solaris acceptance tests
Merge pull request #3090 from adrienthebo/issue/master/pup-1106-check-for-failed-deps-on-refresh

(PUP-1106) Check for failed deps on refresh
Merge pull request #3306 from whopper/pup-3654/deprecate/puppet-newtype

(PUP-3654) Deprecate Puppet.newtype
Merge pull request #3305 from adrienthebo/feature/master/pup-3666-configtimeout

(PUP-3666) Replace and deprecate configtimeout setting
* adrienthebo-feature/master/pup-3666-configtimeout:
   (PUP-3666) Deprecate and redirect configtimeout
   (PUP-3666) Respect http timeout settings for Forge
   (maint) Deduplicate spec helper methods
   (PUP-3666) Add settings for http connect and read timeouts
(PUP-3341) use the proper manifest with puppet apply and ENC

The apply application works by overriding the :current_environment with the
file that was specified on the command line. This had no effect when the node
object (from the ENC) specified an environment of its own.

Remedy this by looking up the node before the environment, favoring its
environment over the configured value and overriding the :manifest of the
chosen one.
(PUP-3341) update apply spec test to make ENC specify env
(maint) prepare apply integration spec for environments
(PUP-3341) prepare apply spec for non-modulepath related tests of environments
(PUP-3341) add tests for the changed behavior

It was decided that (for the time being) puppet apply should behave
like agent/master when an environment is configured (or specified via
command line argument) and prefer the environment that was returned
by the ENC. A warning to that effect should be displayed to the user.

(The warning is not added through this branch - we had this already.)