ceph-disk: tolerate partprobe racing with udev

After we change the final partition type, sgdisk may or may not trigger a
udev event, depending on how well udev is behaving (it varies between
distros, it seems).  The old code would often settle and wait for udev to
activate the device, and then partprobe would uselessly fail because it
was already mounted.  Instead, run partprobde unconditionally, ignore the
result, and skip the settle entirely.

Fixes: #4948
Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
ceph-disk: call partprobe outside of the prepare lock

Call partprobe only at the very end, after prepare is done.  This ensures
that if partprobe calls udevadm settle (which is sometimes does) we do not
get stuck.

Signed-off-by: Sage Weil <sage@inktank.com>
ceph-disk: do not partprobe in the midst of prepare

I do not think this is necessary.

Signed-off-by: Sage Weil <sage@inktank.com>
ceph-disk: drop settle timeout

I'm not sure what this accomplishes; take it out until we determine we
need it.

Signed-off-by: Sage Weil <sage@inktank.com>
ceph-disk: add 'zap' command

Signed-off-by: Sage Weil <sage@inktank.com>
ceph-disk: implement 'activate-journal'

Activate an osd via its journal device.  udev populates its symlinks and
triggers events in an order that is not related to whether the device is
an osd data partition or a journal.  That means that triggering
'ceph-disk activate' can happen before the journal (or journal symlink)
is present and then fail.

Similarly, it may be that they are on different disks that are hotplugged
with the journal second.

This can be wired up to the journal partition type to ensure that osds are
started when the journal appears second.

Include the udev rules to trigger this.

Signed-off-by: Sage Weil <sage@inktank.com>