Threshold Engine needs the sub alarm id and the alarm sub expression
they map to for AlarmUpdatedEvent and AlarmDeletedEvent

Fully implement equals and hashcode for AlarmUpdatedEvent

Add severity to AlarmDefinitionUpdatedEvent

Make it so MetricDefinition dimensions is an empty map instead
of null if there are no dimensions

Change-Id: Ib1d4b3e7adcdb7ec557c0f07515064127f299927