Reset MockDeliveryClient properly between tests

Grouping the ivars should make it harder to do wrong in future
Remove empty created_at field from persisted data

There is currently no implementation to populate it.
Search subscriber list by tag basic implementation

* This will probably break if tags values are given in the wrong order
* Does not handle case if not found
Extract Sinatra adapter for better interface segregation

Sinatra implements many methods and you sometimes find yourself tripping over
them when they all exposed to the application services.
Tweak this hash comparison enhancement as it can be confusing
Implement not found behaviour for subscriber list search
Tag normalization for subscriber list search
Ensure duplicate lists cannot be created

using differently ordered tag values
Add some notes about better revealing intentions
Merge pull request #13 from alphagov/get-subscriber-list

Get subscriber list
`require "unique_tag_set_filter"` isn't unique
Bad merge must have reintroduced Application defaults
Merge pull request #14 from alphagov/careful-now

Careful now
Add ValidInputFilter and validators

These will replace `ProcessableInputFilter`. Naming the filter for the
fact it does input validation avoids giving the impression that anything
which makes it through `ProcessableInputFilter` is processable. Since
the `UniqueTagFilter` is applied afterwards and can call `unprocessable`
on the context, that's misleading.

Splitting the validation and the filter into separate objects allows us
to easily customise the validation for each endpoint by supplying a
different list of validators.
Fix alphabetisation of application requires
Fixup VIF error
Drop ProcessableInputFilter for ValidInputFilter

Stop using the now obsolete `ProcessableInputFilter` to validate the
input of the create subscriber list method.

The behaviour of the system should remain unchanged from this commit.