<application.rb> Add more sensible ENV:* handling

Instead of factoring out the add_connection logic, this ENV:* handler
fixes the subscribers instead. All ENV:xyz subscriptions that aren't
ENV:* are deleted from the subscriber first, then all the ENV:xyz
connections in the publishers hash are added to the ENV:*
subscriber. This should prevent hooks from running twice and keeps the
logic in the elaborate function where it belongs.
<application.rb> Refactor ENV:* handling to operate on copies of carts instead of carts themselves

Created new function - subscription_filter - to resolve subscriptions
for component_instances without altering the cartridge objects
themselves. Added logic to elaborate method to consume new
subscriptions array
<cucumber test> Begin sketching out ENV:* cukes tests

A few steps will need to be written to support these tests. The tests
need to modify cartridges by changing their manifests and hooks. This
includes adding/removing subscriptions, adding/removing published
connections and adding new environment variables.
Added subscription steps, "will not exist" step breaks right now, need to implement second scenario
<cucumber> Fleshing out tests, adding steps to tweak manifests

This looks complete-ish, though some refactoring of copy-paste code
from upgrade-steps is needed. Last tests failed, but suspect devenv
was hosed.
added hooks, pushing code so pmorie can see
replaced mysql with mock-plugin
<cucumber> Add code to clear broker cache, fix wording on scenarios

Made the test case scenarios more reasonably named

Added step to clear broker cache so that cart modifications are
processed appropriately