Add teardown amongst other various optimizations

`Q_teardown()`: automatically teardown the Q, freeing all memory

`QNode_destroy()`: destroy a node, good for filtering, etc.