Improve EC2 API error responses.

Implements blueprint ec2-error-codes

Proper EC2 error codes are returned where possible.

Redundant logging code was united in new ec2_error_ex() helper function and
all standard EC2 error responses are now uniformly logged on DEBUG log level
because they are just responses to invalid client requests, not nova errors.

Unexpected client/server errors are logged on ERROR/CRITICAL level and their
exception name is used as error code - no more useless UnknownError. Error
descriptions are supressed for unexpected server errors as they might contain
sensitive data.

EC2APIError was removed and replaced by specific exceptions. New EC2
exceptions were introduced with EC2 suffix, some of them contain
_ (underscores) in place of . (dots) for automatic translation from exception
name to EC2 error code. This way, no new exception arguments were needed.