Do not treat fFromMe transaction differently when broadcasting
Remove broken PrintWallet functionality
Use boost signals for callbacks from main to wallet
Break dependency of init on wallet.

This required some code movement (what was CWalletTx::AcceptToMemoryPool
doing in main?), and adding a few explicit includes that used to be
implicit through init.h.
walletview: make backupWallet() use GUIUtil::getSaveFileName()

- this allows removal of several Qt headers and makes use of a
  standardized function in GUIUtil
- adds selected path to the UI output
walletview: clarify 2 comments
fix wrong memcmp() usage in CKey::operator==

- add a check for CKey::size() of a and b (size can be 0 or 32)
- change the fixed value in memcmp() to use a.size() instead
- fixes #3090
Bug fix: CDataStream::GetAndClear() when nReadPos > 0

Changed CDataStream::GetAndClear() to use the most obvious
get get and clear instead of a tricky swap().

Added a unit test for CDataStream insert/erase/GetAndClear.

Note: GetAndClear() is not performance critical, it is used only
by the send-a-message-to-the-network code. Bug was not noticed
before now because the send-a-message code never erased from the
stream.
-fuzzmessagestest=N : randomly corrupt 1-of-N sent messages

I needed this to test the new "reject" p2p message, but it should be generally
useful for fuzz-testing network message handling code.
Merge pull request #3115 from sipa/walletmain

Interaction cleanups between main and wallet
Merge pull request #3173 from gavinandresen/fuzzmessages

-fuzzmessagestest=N : randomly corrupt 1-of-N sent messages
Merge pull request #3176 from Diapolo/key

fix wrong memcmp() usage in CKey::operator==
Merge pull request #3160 from Diapolo/walletview

[Qt] walletview: make backupWallet() use GUIUtil::getSaveFileName()