Expose the rebuild preserve-ephemeral extension

This new extension permits preserving the ephemeral partition if the
Nova hypervisor supports that. This is primarily useful when Cinder is
not available to provide preservation of state while replacing the
image in use. One common situation for that is Nova Baremetal.

DocImpact
Blueprint: baremetal-preserve-ephemeral
Partial-Bug: #1174154
Co-Authored-By: Robert Collins <rbtcollins@hp.com>
Change-Id: Ib1511653904d4f95ab03fb471669175127004582
Nova aggregate-details should be more human friendly

'nova aggregate-details' shows Hosts, Availability Zone
and Metadata in the python unicode notation.

+ Adds some tests about aggregates ported from v1 to the
  v3 shell

Change-Id: I69d80b2e76833d78248dee782ae5e53f42a4f4a9
Closes-Bug: #1132961
Replace some utils.bool_from_str with strutils

Instead of using novaclient.utils' bool_from_str, use bool_from_string
from the oslo incubating strutils

Notes:
 0. utils.bool_from_str was strict, only accepted a small set of
    values, while strutils.bool_from_string is not strict by default,
    anything not true is false
 1. bool_from_string accepts on/off, which bool_from_str did not

Change-Id: I04744844b55697819289def081d3c9117ed0713f
Merge "Expose the rebuild preserve-ephemeral extension"
Merge "Nova aggregate-details should be more human friendly"
Merge "Replace some utils.bool_from_str with strutils"