Added setjmp/longjmp support to the kernel

Full implementations for 32/64 bit x86.
Stubs in place for riscv with TODOs.
Test and example usage in kern/src/testing.c
Forgot the risvc Kbuild in last commit
Fixes KFS multi-paths

You can have multiple KFS paths in your .config (space separated).  KFS will be
built from the union of the contents of all of those directories.

A couple notes:
- if you have multiple directories named the same, they both appear, and with
  the same name.  For instance, you can have two /bins.  When you ls /bin,
  you'll get the contents of both bins.  It's a little weird, but not in a way
  that stops you from merging different KFS paths.  (for now).
- KFS might not like symlinks to directories outside of the KFS path.  Not
  sure.  If you put a symlink in kern/kfs from go -> ../../../go, KFS code
  doesn't like it.  If you really want this behavior, let me know.  O/w, just
  use multiple KFS paths.
x86 can handle missing multiboot mmaps

If you run qemu with -kernel akaros-kernel, instead of with a hard disk image
(like mnt/hdd.img), qemu won't fake all of the multiboot memory maps.  x86 was
using this info to figure out what memory was free.  We now handle the case
where we only get a maximum memory amount from multiboot.

Incidentally, the memory reported by multiboot from the BIOS usually is
insufficient if you have more than 4GB of RAM, at least in my experience.  This
is why I was parsing the mmap regions, where multiboot details memory about
4GB.  Qemu with -kernel, which doesn't tell us the mmaps, does tell us all of
physical memory via the BIOS methods (mboot_detect_memory()).

With this change, you can run very large kernel images in qemu.  Qemu takes
forever to load large images (> 100MB) when it tries to load from a disk image.
You can load a 300MB+ kernel directly via -kernel in about a minute.
x86: option to disable the keyboard

To avoid some SMM overheads on machines with USB keyboards.

Without this, simply sitting in the kernel monitor on core 0 has a massive
performance hit on some benchmarks (10-15x for fluidanimate).

Note that sitting in the monitor still has an effect on performance, for now,
even with the KB disabled.
The monitor's trace coretf can query all cores

You can pass -1 for the COREID, and we'll NMI all cores, instead of just one.

Due to this, the NMI handler doesn't print the trapframe by default.  To get
the trapframe, toggle the trace's verbosity to 'on' with "trace verbose".
Updated GETTING_STARTED

With info about how to run without a VM image file, straight outta qemu.