Moved both the memory allocation and deallocation to the same method 'QUnbufferedChan'

This makes a memory leak even more inconceivable, since the remaining memory allocation and deallocation occur within 10 lines of each other.
This also makes put() and get() more symmetrical in that in both cases threads set their context prior to blocking.