Nova-all: Replace basestring by six for python3 compatability

The builtin basestring abstract type was removed in python3,
use str instead, we need to using six.string_types to replace
the basestring for py3 compatibility.

Partial Implements bp: basestring-py3-compatible

Change-Id: I17e87e49e7ebf3cc9c391e9beace8c45d2d2b689
VMware: Detach volume should not delete vmdk

During volume detach a delete_virtual_disk_spec is used to remove
the device from the running instance. This spec also "destroy" the
underlying vmdk file, this is not right, we should not delete vmdk
file when detach it from a VM instance.

The fix was remove the fileOperation field when detach vmdk volume
so as to make sure the volume will not be destroyed; but for iscsi
we still need to destroy the volume.

Also I changed the function name from delete_virtual_disk_spec to
detach_virtual_disk_spec which is more accurate.

Change-Id: Ibd218d6a8cfeede4f5ca74f28bc0c3d0c185bb14
Closes-Bug: #1241350
Raising exception for invalid floating_ip's ID

The proposal is to validate the ID from the request to check
whether it is is valid for nova-network driver.
If the network driver is nova-network, the ID should be numeric.

Change-Id: I10df4f9ba2f5cfec7a6d2112cf5905944a9b5419
Closes-bug: #1078055
Merge "Raising exception for invalid floating_ip's ID"
Merge "Nova-all: Replace basestring by six for python3 compatability"
Merge "VMware: Detach volume should not delete vmdk"