implement sccp_subchannel_destroy correctly
decrease the chance of segfault on module unload

The problem is that, if there's one device with one channel, then
unloading the module will:

* close the session
* ..which will queue hangup on the channel
* stop the server
* unload the module

If you are not lucky, the module will be unloaded before the pbx thread
(in which the channel is "executing") terminate, and then when the pbx
thread will try to call ast_channel_tech(chan)->hangup, it will
segfault, since the shared library (chan_sccp.so) was closed.

This solution is still not perfect (don't believe there exist one
without touching the asterisk core) since race condition can occurs.
prevent deadlock when calling ast_channel_alloc

The start_the_call function is now a bit whacky.