Allow reading with small uio->uio_resid or uio->uio_offset > 0 from /proc/X/map

Currently map file in procfs cannot be read with programs like cat
sometimes. It happens if the buffer to be read into cannot hold the entire
content of map file. Call to read returns EFBIG on this occasion, which is
somewhat confusing.

Submitted-By: Vasily Postnicov <shamaz.mazum@gmail.com>
kernel - Fix incorrect assertion in ffs_reallocblks()

* When softupdates is not enabled reallocblks should not try to free
  an unallocated block.  This appears to be possible if the reallocation
  range covers part of a file with a hole in it.  FSX appears to reveal
  this case.

* It is also possible that this case is due to some interaction between
  the DragonFly buffer cache and UFS that breaks b_offset assignment
  assumptions made by UFS, but I couldn't find any particular vector
  for the possibility.
kernel - Fix old UFS optimization that should no longer be used

* Fix bcopy() calls which cover two fields in the UFS dinode.  Modern
  compilers may barf on the intentional field overflow.

* Also needed for UFS2 support (but we don't have it so this is more
  to fix possible future issues that might arise).

Submitted-by: Pedro Giffuni
hammer2 - Add debugging

* Dump bref->flags in hammer2 service debug output.
drm - Add safety to ttm_eu_reserve_buffers()

* Add a safety to the unlock/relock sequence in ttm_eu_reserve_buffers().
  It is unclear whether all call paths are holding the lock.
kernel - Remove vm_wait_nominal() from VM object cleaning path

* Remove this call to vm_wait_nominal() which can wind up deadlocking
  the system in a low memory situation.
vkernel - Add 'fsck' target to build

* Add an fsck target to the /usr/src/test/vkernel Makefile.  This will
  fsck the rootfs image.
kernel - Register CAM swi as MPSAFE

* Register the CAM swi as being MPSAFE, which should improve disk
  performance when multiple drives are being hit concurrently.

Reported-by: Venkatesh Srinivas