Added the ability to generate multiple UFS partitions of differing
sizes and run the full set of freebsd install phases on a subset of
them.

disk_ufs_create now takes an optional size parameter, automatically
assigns an index 'n' to the partition, and tracks the md partition
name and full device path in DISK_UFS_PARTITION_n and
DISK_UFS_DEVICE_n, respectively.  The indexes are assigned starting at
1 and counting upwards.  The index for a new partition is available in
DISK_UFS_COUNT after disk_ufs_create returns.

`board_add_installworld_partition n` can be used to indicate that the
partition with index n should have freebsd installed on it.  The list
of such partitions is kept in BOARD_INSTALLWORLD_PARTITIONS and
defaults to "1".

disk_ufs_mount now takes a partition index to mount.  If the index is
not provided, index 1 is used.

`disk_ufs_partition [n]` can be used to obtain the value of
DISK_UFS_PARTITION_n, or DISK_UFS_PARTITION_1 if n is not provided.

`disk_ufs_device [n]` can be used to obtain the value of
DISK_UFS_DEVICE_n, or DISK_UFS_DEVICE_1 if n is not provided.

Where one would previously set BOARD_FREEBSD_MOUNTPOINT, one now must
set BOARD_FREEBSD_MOUNTPOINT_PREFIX and BOARD_UFS_MOUNTPOINT_PREFIX
instead.  BOARD_FREEBSD_MOUNTPOINT_PREFIX is used as the base of the
mount path for UFS partitions that will have freebsd installed on
them, and BOARD_UFS_MOUNTPOINT_PREFIX is used as the base of the mount
path for the other UFS partitions.  In either case, the automatically
generated suffix of the mount path is empty for UFS partition index 1
(so that the mount path is unchanged from before for
single-UFS-with-freebsd configurations), and is '.n' for the others.

`board_ufs_mountpoint [n]` can be used to obtain the mount path for
UFS partition index n, or partition index 1 if n is not provided.

board_ufs_mount_all mounts all UFS partitions.  The existing unmount
mechanism correctly handles cleanup without modification.

All existing calls to `disk_ufs_mount ${BOARD_FREEBSD_MOUNTPOINT}`
have been replaced with calls to board_ufs_mount_all, so all extant
boards transparently support the multiple-UFS feature, even if it is
not used.

BOARD_FREEBSD_MOUNTPOINT is still used to obtain the partition mount
path in strategy operations registered to run between
PHASE_FREEBSD_START and PHASE_FREEBSD_STOP, and the working directory
of those operations is still ${BOARD_FREEBSD_MOUNTPOINT}.  As the
strategy machinery will now invoke such operations for potentially
multiple UFS partitions, it takes care of setting the value of
BOARD_FREEBSD_MOUNTPOINT at the beginning of each pass through this
range of phases.  Because of this, one must take care to prevent
${BOARD_FREEBSD_MOUNTPOINT} from being expanded in calls to
strategy_add, as what you now really want is to defer the expansion of
that variable until the operation is run.  In most cases, this is as
simple as enclosing mentions of ${BOARD_FREEBSD_MOUNTPOINT} in calls
to strategy_add in single quotes.

In strategy operations registered to run between PHASE_FREEBSD_START
and PHASE_FREEBSD_STOP, the index of the current partition is
available in _CURRENT_UFS_PARTITION.  This can be used to customize
each of multiple freebsd installs differently (such as adjusting
/etc/fstab depending on partition location).

A number of status messages have been modified to be more specific
about which index, size, path, scope, etc. is involved in the reported
action.

I tried to adjust existing documentation accordingly.