Handle BadRequest in VolumeDetachTask

Novaclient raises BadRequest(400) if a volume is already
detached when delete_server_volume is called.

This change treats BadRequest the same as a NotFound in the
VolumeDetachTask, and logs the actual exception string.

Change-Id: I34c01a493e8c87281d2adecb6d4404376cf78738
Closes-Bug: #1232234
Handle NetworkNotFoundClient and PortNotFoundClient

neutronclient has changed is behavior (recently?) in that it now
raises PortNotFoundClient for missing ports and NetworkNotFoundClient
for missing nets. These exceptions extend NeutronClientException but
do not set the status_code to 404 so the existing resource 404
checking has stopped working.

This change handles both 404 exceptions and the new exceptions
so that it continues to work with different neutron releases.

Change-Id: Id06e04d4b98e62b8062b119e959634fd61c8beb5
Closes-Bug: #1234924
Merge "Handle BadRequest in VolumeDetachTask" into milestone-proposed
Merge "Handle NetworkNotFoundClient and PortNotFoundClient" into milestone-proposed