disklabel.py: Define lba2chs() on Disklabel cls

This method converts an LBA addreess to CHS. Different BSD systems
do this in different ways:

 * NetBSD uses LBA-Assisted translation but OpenBSD does not.
 * For adresses over 8GB where CHS will overflow, OpenBSD will assign
   a fixed value on all 3 CHS fields when NetBSD will do this only for
   the cylinders field.
disklabel.py: Add support for enlarging NetBSD

 * Implement new NetBSDDisklabel and FreeBSDDisklabel classes that
   subclass BSDDisklabel class.
 * Add methods for enlarging the disk and the last partition in
   NetBSDDisklabel
Support NetBSD in FixPartitionTable task
disklabel.py: Print BSD->Linux partition mapping

Add an input option in disklabel.py to print the partition mapping the
Linux kernel will do on the disklabel.
Fix BSD to Linux partition mapping

The mapping we used would fail in some cases. If a BSD partition
has the same boundaries with an MBR one, the kernel will not map it
on a different block device. As a result, partition 'a' is sometimes
mapped on /dev/sda1 and sometimes on /dev/sda5.
disklabel.py: Add function for printing warnings
disklabel.py: Fix OpenBSD part end when enlarging

When enlarging OpenBSD partitions, round them up to multiples of 16512
which is the default fs blocksize. This is what OpenBSD's disklabel
does when creating partitions.
Support NetBSD in FilesystemResizeUnmounted task

Make FilesystemResizeUnmounted task resize the UFS file system of NetBSD
systems