cleanup: move setting of parameter zero

Since we may need to use different default value,
move read of zero_ARG prior processing of parameters.
lvconvert: store target attributes

Target tells us its version, and we may allow different set of options
to be supported with different version of driver.

Idea is to provide individual feature flags and later be
able to query for them.
liblvm: internal API change

Return LV/NULL instead of 1/0 which saves lookup for created LV.
thin: add common pool functions

Move common functions for lvcreate and lvconvert.

get_pool_params() - read thin pool args.
update_pool_params() - updates/validates some thin args.

It is getting complicated and even few more things will be
implemented, so to avoid reimplementing things differently
in lvcreate and lvconvert  code has been splitted
into 2 common functions that allow some future extension.
thin: add alloc_pool_metadata

Since our api call is not yet powerfull enough,
use this wrapper to preset options.
thin: lvconvert update

Use common function from toollib and support allocation
of metadata LV with give thin pool data LV.
thin: lvcreate use common functions

Use common functions from toollib and eliminate code from here.
thin: man page updates

Cover latest extensions of lvconvert functionality.
Update also lvcreate page.
test: testing lvconvert
Document use_lvmetad and global_filter in lvm.conf.5.
thin: update recent patchset

Parse pool params only for creation of thin pools.
docs: host tags has a default volume_list

Document that lvm.conf activation/volume_list defaults to @* when
there's a host tag.
mm: skip mlocking [vectors]

Somehow forgotten:
https://www.redhat.com/archives/linux-lvm/2012-June/msg00019.html
Need for arm architecture support.
lv_manip: fix regresion from bf2741376d4

Commit bf2741376d47411994d4065863acab8e405ff5c7 started to use
lv_is_active() instead of call for lv_info & info.exists so
we cover also cluster activated devices.
For snapshost the conversion was not correct and introduced
regression by blocking creation of snapshot of inactive LV.

Fix it by assigning lv_is_active() directly.
Note: we still have minor issue to fix - to make
lv_is_???? function able to return error states since
lv_info() may fail.
RAID:  Do not allow --splitmirrors on RAID10 logical volumes.

RAID10 does not have the ability to split off images for independent
use.  So, 'lvconvert --splitmirrors' will not work and must be
disallowed.
RAID:  If no stripes argument is given for RAID10 create, default to 2

Similar to the way the 'mirror', 'raid1' and 'raid10' segment types set
the number of mirrors to 2 ('-m 1') if the argument is not specified,
here we set the number of stripes to 2 if not given on the command line
when creating a RAID10 LV.
Automatically restore MISSING PVs with no MDAs.
lvm2api: fix typo

oops, typo didn't cause compile error
thin: detect discards for non-power-2

Check if target supports discards for chunk sizes,
that are not power of 2 (just multiple of 64K),
and enable it in case it's supported by thin kernel target.
thin: add more unsupporte options for merge

Hmm, we need some smarter way to detect unsupported command
line options for various commands.