Flufl bounce runs too many detectors.

Currently, flufl.bounce runs all the detectors against a message and returns the union of the addresses they find. This is extra work and can lead to errors. For example DSNs from Exim are RFC 3464 compliant and are recognized by the DSN detector, but they also contain an X-Failed-Recipients: header with the failed addresses and are recognized by the Exim detector. Further, these DSNs can contain the full original message which can result in bogus matches from SimpleMatch or some other detector.

Also, the detectors are run in the order returned by pkg_resources.resource_listdir which is somewhat arbitrary. I think it would be better to run the detectors in a predictable order from most reliable to least reliable and stop after the first detector returns a non-empty result.