boot - boot loader fixes

* Clarify some issues in comments.

* Don't trust the bios memory boundary, start 1K below it.

* Always bounce, not just for floppies.  This should help with situations
  when loading kernels and modules beyond the 16MB mark.

* Add some debugging memory commands
kernel - Fix mid-kernel-boot lockups due to module order

* Sometimes the kernel would just lock up for no apparent reason.  Changing
  the preloaded module set (even randomly) could effect the behavior.

* The problem turned out to be an issue with kernel modules needing to
  temporarily migrate to another cpu (such as when installing a SWI or
  other interrupt handler).  If the idle thread on cpu 0 had not yet
  bootstrapped, lwkt_switch_return() would not be called properly and
  the LWKT cpu migration code would never schedule on the target cpu.

* Fix the problem by handling the idle thread bootstrap case for cpu 0
  properly in pc64.
libstand - Fix excessive memory use by hammer2 module

* Don't try to dynamically allocate 64KB for each open file.  Just use
  the same static media buffer that normal operations use.

  This fixes some severe heap fragmentation and out-of-memory issues
  when a lot (20+) modules are specified in /boot/loader.conf that
  can cause the boot loader to fail.

* Add getheap() to retrieve heap stats.
loader - Add slowprint() debugging helper

* Add a slowprint() function and command to enable it
  to help trace out problems.

* Used for recent debugging but calls are not intended to be permanently
  resident in the code.  Leave the infrastructure in place for future
  debugging.