allow ssh_channel_free from channel callback
I've written some code using the callbacks added in !269 (closed).
My first attempt had a non obvious issue. I was freeing the channel from within a callback that indicated the channel was not properly opened.
This causes the session and its callback list to be free-ed while it is being iterated.
It should be possible to allow such a free this by delaying the effective free (implemented in ssh_channel_do_free) until the iteration has finished.