posix: only allocate sigret stub once, but map if needed.
x86: copy extra metadata in VirtualAddressSpace::clone to ensure VirtualAddressSpace::allocateStack and VirtualAddressSpace::expandHeap work as expected if a cloned address space is not reverted to kernel address space.

This resolves some weird issues that arose when processes would fork() but
not exec(), especially with events and heap corruption.
process: Process copy constructor no longer has to care about cloning heap information from the other process, as VirtualAddressSpace::clone does that now.
process: in Thread destructor ensure any pending RequestQueue requests for the thread are cancelled or otherwise cleaned up.
posix: in PosixSubsystem, fix UnlikelyLock acquiring, fix possible leak, minor coding style changes
utilities: be a bit noisier if a Tree with items is destroyed (and clean up)
machine: yield after sending events from InputManager