Enable filter alarms by their type

Since type is a very important attribute for alarm object, it will be much
convenient to get alarms by certain type. This patch adds the 'alarm_type'
parameter to get_alarms interface to implement it.

End user can filter alarms by using 'type' filter.

NOTE: this patch changes the parameter 'type' to 'alarm_type' in
get_alarm_changes interface of storage module, to keep consistent with
get_alarm interface.

Change-Id: Ib81375028957490f3a114de7627bc4bcb20f3d77
Add new notifications types for volumes/snapshots

This change allows to collect and view notifications of different types -
volume/snapshot.(create | delete | update).(start | end) and
volume.(resize | attach | detach).(start | end).

Implements: blueprint add-new-notifications-types-for-volumes-and-snapshots
Change-Id: I592605bcea483d06f219a4d02d3a70a9fc0e27a3
Validate AdvEnum & return an InvalidInput on error

Raise a relevant exception of InvalidInput while validating if
the input to AdvEnum is not one of what is expected.

Closes-bug: #1320430
Change-Id: I48f014cc09e7d88e9b0f02fb8e9cf45772178b2c
Merge "Validate AdvEnum & return an InvalidInput on error"
Merge "Add new notifications types for volumes/snapshots"
Merge "Enable filter alarms by their type"