Don't allow compute_node free_disk_gb to be None

As part of commit 5668870, we now explicitly guard against the case
free_disk_gb is None or unset. However, this should never happen
since resource tracker always sets it and guarding against this case
isn't actually needed to fix the bug in question.

Also, simplify the code a little to make the intent more clear. We
assume that free_disk_gb is always set, but we want to use
disk_available_least where the driver has set it. The case where
disk_available_least is less than free_disk_gb is the exceptional
case we want to guard against.

Change-Id: I3973eab6b4ca016df546de8b57245fc0d0f03a80
Convert unrescue_instance to objects

Related to blueprint icehouse-objects.
Related to blueprint compute-manager-objects.

Change-Id: Id1311064354ee055a3557ce6aafca148c76524ec
Merge "Don't allow compute_node free_disk_gb to be None"
Merge "Convert unrescue_instance to objects"