Now remote_node uses cancel_t to work properly with ASIO timers.
Drop Asio shared_from_this lifetime management and return to awesome RAII.

Now cancel_t allocates its epoch on the heap and manages it via shared_ptr,
so other objects using cancellations don't have to use shared_from_this to make all it work.