<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