buildworld - Attempt to fix m4 bootstrapping issue (2)

* m4 depends on flex which exec's (depends on) m4.

* Change m4 to not depend on flex and reorder the [b]yacc build to run
  before m4.  M4's lex file is now manually generated and made part of
  the source archive, and the Makefile simply compiles the .c version
  instead of trying to run flex.

  Any future update to m4 will require it's lex file to be manually
  lex'd.  Too bad, that's the way it goes.  M4 is a piece of crap and
  flex is an even bigger piece of crap for needing to exec M4.  I'm not
  going to play with this stuff more than I need to to make things compile.

* Remove conditionals from m4 .y and .l files.  They were wrong because
  they weren't necessarily reflective of which lexer was being run,
  and now they aren't needed at all.
kernel -- virtio: Implement virtio-layer lwkt_serializer for devices

* Switch virtio device targets (currently only -blk) to use a
  serializer for synchronizing per-target state. Thread the
  serializer through virtqueue_notify (release around kick) and
  into the bus interrupt setup code.

* Remove dump support from virtio-blk for now; it doesn't work and
  results in further panics from an incorrectly setup bio.

* Other cleanups of virtio-blk (de-indirect locks).