make sure timer does not run with pointer to delete objects

move deletion of InternalSubscription to asio service to make sure timer. does not run with pointer to delete objects
>
> If there will be several threads perform io.run() then here will be races.
>
You are right. I completely forgot that case!!