Add new parse_kern_geom_confxml() and modify get_media_description()
to attempt to populate the capacity portion of VAL with the `mediasize'
property of the GEOM device. Specifically we return the property from
the provider that has the `id' matching the `provider_ref' of the GEOM
consumer associated with the ``DEV'' class GEOM matching desired media.

Getting the `mediasize' property from the GEOM structure vs diskinfo
shaved about 2.5 seconds off the time it took to display the menu of
available disks (and that was only with a single disk).

If disk capacity cannot be acquired via the GEOM XML data, we fall back
to using diskinfo(8).

NB: I'm retaining sparse commentation, re-enforcing that curlies should
only be used when required, and retaining whitespace meme -- because
every byte in this file increases the size of the installer base.
However, I might come back and change the whitespace to actual-tabs
because obviously using a single tab where 8 spaces occurs saves you 7
bytes many times over.

NB: Analyzing the whitespace in this file shows that at least one point
in its life someone edited this file with emacs. There is a known way to
make emacs and vi play nice when it comes to real tabs... add these few
lines to the beginning of the file... (ignore leading `+'):
	+ # -*- tab-width:  4 -*- ;; Emacs
	+ # vi: set tabstop=4     :: Vi/ViM
That will cause emacs to always use real tabs during auto-indent and
also make the file look the same in both emacs and vi; while reducing the
bytecount in the file by never using a series of ASCII 0x20 to indent.