ks: monitor command for mucking with the ksched

The only new functionality is the "sort" command, which will sort the idle core
list from 1..n.  "nc" is a hook to avoid calling kfunc next_core, which is a
minor pain.
Fixes FD set freeing

If a process is DYING and the number of FDs was greater than the default, we
would free the blobs, but keep pointers to the blobs.  Later, a pip would try
to read those and would be looking at re-alloced, garbage memory.
Avoids deadlock in pip

If another core has the files lock and is stuck, we'll deadlock the kernel
spinning on the lock.
Fixes deadlock on growing the FD set

If we tried to grow beyond the max number of FDs, we'd set n == max and
kmalloc, memset, and memmove without making progress.  The loops would retry.
Increases the maximum number of FDs

I didn't bother syncing this with glibc.  We can, if its an issue.  I'd rather
just not use the struct fd_set in userspace.  It's a huge pain in the ass on
Linux.