Wallet: don't save wallet and invoke event listeners when adding watched scripts if the call was a no-op.
PeerGroup: insert filter providers at the start of the list instead of the end, to help clients avoid circular deadlock.
Maven: auto release after close
WalletTool: use minBroadcastConnections == 1 when in regtest mode.
Immediately advance current addresses instead of doing it lazily. This avoids a bug whereby an app might quit after using a change address, thus currentKey(CHANGE) == null and it gets reset to the last used address when the wallet is round-tripped.

Unit tests didn't catch this because they didn't simulate the app terminating after the send, and weren't explicitly checking that the change address was different, so improve tests to do those things.

Additionally implement marking as used for married wallets.
Issue 586 fixed, 0BTC transaction with OP_RETURN will work.
Wallet extension: fix a regression introduced by e3a13a6, where in some kinds of app wallet extensions stopped being loaded properly.
PeerGroup: add/remove listeners from active/pending peers as well as the internal list.