Channel: Change semantics of dispose() and expose the attached state

Children are now stored in a queue for better performance. Deleting is
O(n) for ArrayBuffers while it can be performed in constant time for
queues.