First cut at implementing host maintenance (aka host evacuation). This allows
zero-downtime upgrades of the hosts by moving VMs off of to another host to
carry out hypervisor upgrades.
A number of issues have been addressed in this changeset:
- improved the semantic of update operation on hosts (as per dabo comment)
- refactored host-related operations into a separate class in to improve
readability/maintainability
- refactored test_hosts to reduce duplicated code
- added first stub of host-maintenance operation
Change-Id: I933f7cb8736e56c9ecea5255936d8826ef6decec