Support preserve_ephemeral

Teach the PXE driver to preserve the ephemeral partition during deploy
(if requested).

The patch also improve the exception message for invalid parameter value
to include the bad value in it and the reason why it failed.

Docstrings of the deploy() and work_on_disk() functions were also updated
in this patch.

Based on: https://review.openstack.org/#/c/59312
          https://review.openstack.org/#/c/54308

blueprint: preserve-ephemeral
Partial-Bug: #1174154
Change-Id: I45f63cd3648eec6776d0716ac26f5be6862f7cfe
Merge "Support preserve_ephemeral"