Addressing request/callback and transaction fixes (EUCA-4172)

AsyncRequests now has a dispatchSafely method that can be used if the
caller wishes to ensure that either the success or failure case of a
requests callback is run.

The Request interface and AsyncRequest implementation are updated to use
more appropriate type information. Address callbacks now use type
parameters so the compiler can validate types.

Addresses now exposes methods for updating instance IP addresses within
transactions.

The duplicated system address assignment logic is moved to
AbstractSystemAddressManager.doAssignSystemAddress where it can be used
by the DynamicSystemAddressManager and StaticSystemAddressManager.
System address assignment is updated to use a transaction when updating
the public address for an instance post assignment.

UnassignAddressCallback is updated to use a transaction when updating
the public address for an instance on success or failure.

Fixes EUCA-4172
Addressing request/callback and transaction fixes (EUCA-4172)
fixing 'inconsistency in sensor database' messages

    - handing erroroneous return from sensor_get_instance_data,
      resolving inconsistencies
    - added extra diagnostics for 'inconsistency in sensor database' messages

fixes EUCA-4249
Console now runs as eucaconsole user

Fixes EUCA-4238
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
EUCA-4251: don't time out sensor cache entries when timeout = 0
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
Fixes EUCA-3902
Console's pollfreq.snapshots changed and don't know why; reverting
Fixes EUCA-3902
Fixes EUCA-3902