Don't allow creation of seeds with null passphrase

It should be the empty string as the standard default.
Delete watched scripts methods. Fixed queueOnScriptsChanged threading.
Fix documentation
Fixes issue 587: disables connecting to local bitcoin node during tests
Adds JaCoCo code coverage tool.
Implement some missed Bloom filter application logic (does not impact existing apps).
Fix bug revealed by static analysis.
Change the PeerFilterProvider interface to have begin/end methods instead of requiring a lock to be exposed. It's more efficient and flexible.
Renamed params variable to use correct source library; removed traceback usage to be compatible with jython 2.5
Made the sys.path.append more obvious
Update forwarding.py

removed commented code that served no purpose.
Adds coveralls.io support via maven plugin.
Rewrite most references to prodnet to mainnet in the comments. Does not change any actual code.
Rename wallet-tool option --net=PROD to --net=MAIN. PROD can still be used as an alias to MAIN.

The mainnet blockchain file is renamed to mainnet.chain.
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.