Import of what I've been calling "LFSv2", that is, LFS with some features
added that require changes to the on-disk data structures.  These include:

- 64-bit time in everything but inodes
- User-specified segment offset, and segment size no longer
  restricted to PO2.
- Serial number on segment summaries in addition to timestamp, and
  a new volume identifier, to make roll-forward feasible without
  fear of finding old data and thinking it was new.

Although I think this version works at least as well as what's on the trunk,
we're not done yet; hence this commit is going in on a branch and not on
the trunk.  Enhancements that are not here yet include fragment addressing,
like FFS does, instead of block addressing.
Get rid of __P(), protoizing where it had not already been done
fix comment in light of roll_id
Update the Ifile copy of the free list head in lfs_vfree, so inode numbers
actually get reused.
Fixes, from joff, for correct compatibility operation of fsck_lfs, dumplfs,
lfs_cleanerd; correct usage message from dumplfs.
Change disk addressing unit to be the fragment, instead of the disk sector.
All quantities in the superblock, inodes, indirect blocks, etc. refer now
to this abstract unit (called "fsb" as it is in FFS) instead of disk sectors;
as a consequence segment summary blocks have to be multiples of a fragment in
size.  In v1 filesystems, compatibility code ensures that 1 fsb == 1 sector,
regardless of fragment size.

Fragments can now range in size between 512 and 32k; in the event that
LFS_LABELPAD (8k) is smaller than the disk address unit size, an extra
proto-superblock is kept at 8k from the beginning of the disk, to be used
*only* to locate the real superblocks.  (Not all of the userland knows about
this yet.)

Almost all of this was done not by me, but by joff.
Turn the free list into a tailq, with both head and tail kept on the ifile.

Update access times on the inode even if it does not get marked IN_ACCESS.
Properly initialize and report the inode free list tail.
Read in the true primary superblock, if the fsb unit is > 8k.
Check both superblocks.  If the fsb unit in the proto-superblock is > 8k,
look first for the true primary superblock at fs->lfs_sboffs[0].
Lingering change from the block addressing changeover: reserve the correct
number of bytes according to the number of fs blocks we may need to write.
Be more careful about when we update ctime/mtime.  In particular, if we
are only writing indirect blocks, that doesn't count for mtime; and when
we first create a vnode, that certainly *does not* count for ctime
(a bug that's been there from the beginning).

This does not change the fact that mtime might still be set after write(2)
is "completed", but it does make the atime-in-the-ifile code have some
effect (noticeable less degradation of read time after an intervening
large write).
Default to creating a v2 lfs, and print out the roll-forward id that
was used.  Update newfs_lfs.8 to reflect new options.