Addressing an issue where the retry errors plugin raises NoMethodError.

The RetryErrors plugin attempts to identify retryable errors by their
error code. The error code is the class name of the error for all
AWS service errors.

In multi-threaded environments, this appears to be unrelyable as the
name of the service errors can be `nil`. This changes the service
error classes to all have `#code` attribute that is set when the
error class is defined. The retry errors plugin now accesses this
property instead of the name for `Aws::Errors::ServiceErrors`.

See #71
See #61
Minor fix for non-service errors.
Merge pull request #85 from aws/error-codes

Addressing an issue where the retry errors plugin raises NoMethodError.