Flatten service pyramid

The way services and aspects were composed was a bit of an intimidating pyramid. Splitting them up into a flat list of aspects and the core service object is more readable.
I think this would be better if the aspects used active rather than passive voice to make it clear what they're actually doing or what behaviour they're adding.

`filter_valid_create_subscriber_list_inputs`, `filter_unique_tag_sets`, for example.