Improve support for custom executors in listeners

First stab at fixing http://code.google.com/p/bitcoinj/issues/detail?id=567

This PR does not remove the isRelevantTransaction since an alternative method of signaling which transactions are insteresting should be provided. If you want I can add that as a different commit, but I would like input on what the alternative mechanism should work (`Set<Sha256Hash> getRelevantTransactions()`?).
OK, I need to refresh my memory of how this stuff works, it's been a while. You may be correct. Additionally parts of this code may be effectively "dead" unless used on alt-coin forks that don't have Bloom filtering. I wonder if it's time to drop support for non-merkle blocks in SPV mode entirely. Anyway I'll take another look later.