fix(test_image_content): Improve /usr symlink and conflict tests.

Now uses the package database instead of filesystem so the check works
even if /bin and friends are symlinks to /usr. Also disable the
whitelist and check that the expected symlinks are correct if the
symlink-usr USE flag is enabled.
Merge pull request #145 from marineam/symlink-usr

fix(test_image_content): Improve /usr symlink and conflict tests.
add(disk_util): Rename cgpt.py to disk_util.

Use a more generic name so cgpt.py and disk_layout_util.sh can be merged
into one tool. Wrappers around wrappers around wrappers are tedious.
fix(disk_util): Rework how argument parsing/passing works.

Move from optparse to argparse. Move layout file and layout type to
global options with reasonable default values so every command doesn't
need to them. Adjust calling scripts to match.

For now layout type is being passed via an environment variable
DISK_LAYOUT_TYPE but this is a temporary situation.
fix(disk_util): Merge write_mbr into write_gpt

No need for this to be a different command.
fix(disk_util): Remove support for --adjust_part

This isn't a feature we've been using as far as I know and if someone
needs a custom partition layout it's probably better to just add it to
the json file. Removing this avoids some complexity.
fix(disk_util): Convert partition list to an object.

Hey, 'num' is a primary key! Lets use it and avoid pointless looping.
fix(disk_util): Rework config parsing.

Merge GetPartitionTable and partition alignment from WritePartitionTable
into LoadPartitionConfig so that all this config manipulation code is in
one place and inheritance from the 'base' layout is more predictable.
feat(disk_util): Add 'format' command to create filesystems in an image.

This will replace the less flexible code in base_image_util.sh
feat(disk_util): Add mount and unmount commands.

This will replace the assorted mix of mount/umount scripts.