Doors and stacks

* Adjusts the door repair process to use a welding tool.
* Reorganizes stack code a bit, adds procs for transferring material between stacks and splitting off part of a stack into a new stack.
* Modifies stack/use() to delete empty stacks only after the current context yields. This avoids the need for some awkward constructions, as the stack instance will remain until the next sleep(), spawn(), or whatever user input called the proc is done.