IAM ARNs now use the account ID and not the alias - EUCA-5274

IAM ARNs returned from Euare now use the account ID. Previously we were
incorrectly using the account alias.

EUCA-5274
EUCA-5141 Added IAM support to ELB operations.
EUCA-5527 removed unused import referencing import com.eucalyptus.loadbalancing.activities.LoadBalancerServoInstance;
Load balancing quota support - EUCA-5389

Quotas can now be set for load balancers. A quantity metric function is
added for counting load balancers and is used by the new quota key.

CloudMetadatas functionality has been generalized and moved to
RestrictedTypes. Load balancing and auto scaling now use the
RestrictedTypes functionality where possible. A LoadBalancingMetadata
interface is added for load balancing resources.

EUCA-5389
EUCA-5140: Loadbalancer Cloudwatch Metrics
 -- Load-balancer-servo now fetches all AWS-defined system metrics from haproxy
 -- The ELB service receives the record from the servo and keep it in memory
 -- In about every 60 seconds, ELB service puts the accumulated metrics to the CloudWatch
EUCA-5407 Added instance profile support to EC2 run instance request
A few bug fixes that doesn't correspond to a story
  -- describe loadbalancer should use account name, not user id (because ELB belongs to an account)
  -- instances being registered should be owned by requesting account
  -- registered instances should be running
Auto scaling describe scaling activities - EUCA-4998

AutoScalingService is updated to implement the DescribeScalingActivities
action.

ScalingActivity and AutoScalingGroup are updated to collect related
causes using ActivityCause and GroupScalingCause respectively. The group
cause information is collected when any action that could lead to
scaling is performed. The activity cause information is copied from the
group when scaling occurs and additional scaling specific causes are
added.

Auto scaling now allows global suspension of scaling processes and also
(implementation specific) scaling tasks. Scaling tasks include deletion
of old scaling activities and termination of untracked auto scaling
instances. The AutoScalingConfiguration class is added for all
configurable properties.

Restricted types is updated to remove unused account name methods.

The auto scaling binding is updated to use a consistent reponse time
format (with potential trailing zeros in milliseconds)

EUCA-4998
EUCA-5519 Create new properties for cloud watch and reporting

cloud.monitor.DEFAULT_POLL_INTERVAL_MINS replaces reporting.DEFAULT_POLL_INTERVAL_MINS
The poll interval now serves as the cloud level interval for both reporting and cloud watch concerning
CC to CLC describe sensor responses.

Introduction of the cloud.monitor.HISTORY_SIZE property; max size 15 : min size 1

Cloud watch will now accept all history collected from the response from the CC.
The reporting events remain based on the last history item received by the CC.

General clean up
Large commit of many features:

EUCA-5205 Cloudwatch Validate input parameters
EUCA-5208 Cloudwatch db paging (implementing next token)
EUCA-5377 Error handling in cloudwatch (added CloudWatchException and subclasses)
EUCA-5376 JSON field imlementation for alarms (state_reason_data and alarm_history, both field creation and JSON validation)

General clean up.

Removed unused field user_id from metric_data tables

Added all permutations of system metrics in list_metrics table.  For example
if a metric is "Foo" with dimensions "a=1,b=2" 4 metrics will be added.  (Each will have the name "Foo" but each combination of dimensions will occur (none, "a=1", "b=2", and "a=1, b=2")
EUCA-5555: use autoscaling group to manage ELB VMs
  -- replace run-instances/terminate-instances with create-autoscaling-group / delete-autoscaling-group
  -- a new entity that represents the autoscaling group ELB uses
Impersonation is updated to unify external/internal mechanisms.

Impersonation is cleaned up to avoid duplicated impersonation code for
external and internal message paths.

Contexts now wraps the underlying Context when impersonation is active.
The impersonating context implements a new Wrapper interface that can be
used to extract the original Context if necessary. This is used by the
TagManager to verify that the caller has permission to modify restricted
tags.
Auto scaling respect suspend/resume for alarm notifications - EUCA-5525

The auto scaling service now checks for suspension of the alarm
notification process when executing policies.

EUCA-5525
Auto scaling metrics collection management - EUCA-5354

The auto scaling service is updated to implement actions related to
metrics collection. AutoScalingGroup now persists the enabled metrics
for the group. Describing groups will also show the currently enabled
metrics.

EUCA-5354
    Calculated value for 'difference' in SystemMetrics: VolumeReadOps, VolumeWriteOps, VolumeReadBytes, VolumeWriteBytes, VolumeTotalReadTime, VolumeTotalWriteTime.  Added VolumeThroughputPercentage
Auto scaling submission of metrics to CloudWatch - EUCA-5413

ActivityManager is updated to submit metrics to CloudWatch each minute
for metrics that are enabled. MetricCollectionTypes now calculate their
metric.

CloudWatchMessages is updated to add convenience constructors.

EUCA-5413
EUCA-5255 Metadata service modification: assume role operation

EUCA-5536 EC2 : implement instance profile name parameter
EUCA-5180: Use IAM roles for loadbalancer VMs (INCOMPLETE)
-- create IAM roles and instance profiles for the loadbalancer VMs
-- create the launch configuration with the instance profile name
-- fix missing user-data bug in autoscaling's launch config
Changed line
BaseMessage reply = (BaseMessage) AsyncRequests.dispatch(serviceConfiguration, putMetricData);

to

BaseMessage reply = (BaseMessage) AsyncRequests.dispatch(serviceConfiguration, putMetricData).get();

because the .dispatch() method returns a Future, not a BaseMessage

in DescribeSensorCallback.java

(How did this compile?)
Merge branch 'team/clc-dev/services' of git.eucalyptus-systems.com:eucalyptus into team/clc-dev/services