Add -unmount! and clear-cursor upon unmount

When a component is unmounted, we want to invalidate its cursor by clearing it,
as well as any child cursors. This adds -unmount! to the IComponent protocol and
provides implementations and tests.

/cc @scottrabin