Fix Open311 error on processing comments

As per https://github.com/mysociety/FixMyStreet-Commercial/issues/484
the query to fetch the related alert sometimes:

    * retrieves no result, causing an error on $alert->id
    * retrieves multiple results, causing deprecation warnings
    (e.g. which may at some point become future errors in DBIC)

This commit turns the resultset('DB::Alert')->find(...) into a
search(...) and loops over the results, to suppress them.

This behaviour still passes t/open311/getservicerequestupdates.t
but I'm unsure whether we're violating an assumption by having
other than 1 results here?  Certainly the DB schema for Alert
doesn't do anything to prevent duplicates here, should it?
Tests for zero and multiple alert suppression

See https://github.com/mysociety/FixMyStreet-Commercial/issues/484