Fix treatment of percent as lvm lv size spec.

Percent is an alternative to a literal size. It is a fixed size request
expressed as a percentage of the vg's free space after all requests with
an explicit size have been allocated (but not grown). That means that a
request defined using percent can still be growable. Such a request will
use the size calculated from the percent argument as the basis for growth
rate.

Related: rhbz#1116435
devicelibs.lvm: fix pvmove(src, dest=DESTPATH)

args.extend(str) will treat the str as iterable and append each
individual character to args; should be args.append(str).
devicelibs.lvm: refactor _getConfigArgs()/lvm()

Every place in devicelibs.lvm that executes lvm uses _getConfigArgs()[1] to
help build the argument list. So it'd be cleaner and simpler if we made
every call to the lvm binary go through lvm(), and then just called
_getConfigArgs() from there.

This also means we can pass the caller-requested lvm command+arguments to
_getConfigArgs(), so it can examine them and add appropriate config options
for us.

For example: right now the caller has to explicitly request
read_only_locking if it wants read-only locks. The current code does that
for every call to the informational commands (lvs, pvs, vgs, etc.).

This change moves that logic into _getConfigArgs(), which now just
automatically does read-only locking whenever we call one of the info
commands. Much simpler!

[1] except thinsnapshotcreate(), but that was an oversight (which is
therefore fixed by this commit)
lvm_test: refactoring + minor fix

Factor out a LVMAsRootTestCaseBase so we can more easily add new
functional test cases.

Also fix a buglet in tearDown where a failed pvremove() could make us
exit the loop without finishing.
Add attribute 'flags.lvm_metadata_backup'

This adds a flag which - if set to False - will suppress the automatic
backup of LVM metadata by adding the appropriate configuration options
(backup.backup=0 and backup.archive=0) to all invocations of LVM.

It also adds a test case to ensure this actually works.
Disable LVM autobackup when doing image installs (#1066004)

If we're doing an image install, the host system doesn't really care
about the metadata for these volume groups - and if you do a lot of
image installs (say, on a build system) the archive/ directory is going
to grow without bound.

So: suppress the autobackup behavior during image installs to prevent
modifying things on the host.