Refactor the filter interface to be an async call which returns the result using a wallet event A call to the filter API will cancel the ongoing filter and receive an error result event Closes status-desktop #10994