Fix incorrect exception raised during evacuate

This change creates a new exception 'ComputeServiceInUse'
to better represent the error when trying to evacuate
an instance with a running compute service. Also, it adds
a missing test for evacuate API v3.

Closes-Bug: #1230282

Change-Id: I1c4edb01e84cd2a89879bca9c99f5e38f47e16fb
Sync three-part RPC versions support from Oslo

Change-Id: Ia93e7a6d978374e0dcf49c2be230c67e41a7bd14
Remove duplicated method in test_compute_api.py

Remove duplicated method test_stop_a_stopped_inst in file
nova/tests/compute/test_compute_api.py

Change-Id: I7222a4ba169440ca9cdc7b78a73db6afe2835c0e
Merge "Fix incorrect exception raised during evacuate"
Merge "Sync three-part RPC versions support from Oslo"
Merge "Remove duplicated method in test_compute_api.py"
Add boto special casing for param changes in 2.14

boto 2.14 has some interface changes with the get_http_connection
call which adds port as a non optional parameter *in the middle of*
existing non optional parameters. It's a special kind of incompatible
change.

We are already special casing around boto in the unit tests, lets
just do more of that if we are running on a newer version.

Co-Authored-By: Dan Smith <dansmith@redhat.com>
Closes-bug: #1237944
Change-Id: If388d872286eca15bf24a582db1bac22224a8b24