Have tox install via setup.py develop

tox 1.6 was released, which means that we can now take advantage of the
feature we added to it - which is using setup.py develop to install the
code into the virtualenv. The logic was taken from run_tests.sh - so the
performance issues around using tox vs. using install_venv should now be
gone.

run_tests.sh is still needed to handle the ui switching between
parallel, single and debug modes to testr.

Change-Id: Ida5e440d1bdb9f8e9031277ea53a02d2ef171438
Improve EC2 API error responses

This is a final patch from series of patches improving EC2 error
responses that makes finishing touches.

Useless EC2APIError exception is finally annihilated. Nova exceptions
that were raised outside of EC2 API are now translated to appropriate
EC2 error codes using ec2_code attribute.

With EC2 exceptions fixed, HTTP status code corresponding to raised
exception is now returned instead of previously hardcoded 400. All
expected exceptions are treated as client errors and returned with 4xx
HTTP status code for compatibility with EC2 API.

Unexpected exceptions are now always logged on ERROR log level, CRITICAL
wasn't really appropriate.

Following valid EC2 error codes were added to existing exceptions
eliminating the need to translate them explicitly:

 * InvalidKeypair.ec2_code = 'InvalidKeyPair.Format'
 * KeyPairExists.ec2_code = 'InvalidKeyPair.Duplicate'
 * QuotaError.ec2_code = 'ResourceLimitExceeded'
   (*LimitExceeded exceptions inherit from QuotaError)

Exceptions caught in Executor were reordered for better readability.

Implements: blueprint ec2-error-codes

Change-Id: I27f9397d006f1b66b53a91b04ec6763a4d8ac740
Merge "Improve EC2 API error responses"
Merge "Have tox install via setup.py develop"