This attempts to fix mmap(/dev/ksyms). In particular, we now
preallocate a VM object for the pages backing the symbol table and allow
it to be shared among processes that share the device file handle.
While here, fix some unrelated bugs:
- don't call the dtor if ksyms_open() fails, since devfs_open() will do that for us
- check for errors from copyout()
- use an sx lock instead of a mutex to allow M_WAITOK allocations