[Reviewer Matt] Sort out reference counting on requests

Matt

As per my email, can you review my fix to the request reference counting in SproutletProxy.  To summarise the model

-  each request has an initial reference that logically sticks with the request as it is passed between components
-  if a component wants to retain access to a request while passing it to another component it must add an extra reference and take responsibility for decrementing this reference when it no longer needs access to the request (it must also view it's reference as immutable).

I've run this overnight with 20K subs and memory has maxed out at 7%.

Mike