Implementation of {@link ApiMetadata} for Amazon's EC2 api.
note
This class allows overriding of types {@code S}(client) and {@code A}(asyncClient), so that children can add additional methods not declared here, such as new features from AWS.
As this is a popular api, we also allow overrides for type {@code C}(context). This allows subtypes to add in new feature groups or extensions, not present in the base api. For example, you could make a subtype for context, that exposes admin operations.
@author Adrian Cole