Parent list length doesn't reflect new member in _addParent.

The new parent doesn't get added until after _addParent returns.
Add tests that use ParentList as part of Device.
Split out common lvm parsing code.
Gather lv list where we use it to save from having to stash it.
Get lv list from lvm in a more straightforward format.

The old way we'd get one info dict for the VG with list values, eg:

{"LVM2_LV_NAME": ["foo", "bar", "baz"]
 "LVM2_LV_SIZE": [1,24,10]
  ...}

Now we get a separate dict for each LV, eg:

{"fedora-foo": {"LVM2_LV_NAME": "foo",
		"LVM2_LV_SIZE": 1,
		...}
 "fedora-bar": {"LVM2_LV_NAME": "bar",
		...}
 "fedora-baz": {...}}

Basically, it means that each lv gets it own info dict, which is much
nicer than having to piece together pieces from several different dicts.
Add support for listing everything to pvinfo and lvs.

Specifying a device to pvinfo or a vg_name to lvs will filter the
results as expected.
Only gather lvm information one time per DeviceTree.populate call.

We run one command to gather information about all PVs the first time we
need information about any PV and one command to gather information about
all LVs the first time we need information about any LV. This information
is cached until the next time someone calls DeviceTree.populate or
DeviceTree.dropLVMCache.