enable GCC large address aware linker flag (Windows only)

- this flag allows bitcoin-qt.exe / bitcoind.exe (32-bit application) to
  handle addresses larger than 2GB (up to 3GB on x86 Windows and up to
  4GB on x64 Windows)
Moved SyncWithWallets out of ProcessMessage and into CTxMemPool::accept() so that when adding multiple wallets they will be aware of each other's transactions.
Send transactions after a CMerkleBlock when asked for it in an inv.

This actually simplifies some SPV code, as they can keep track of
a filtered block and its txn before accepting both in one step.
The previous argument was that SPV nodes should handle the txn the
same as any other free txn and then mark them as connected to a
block when they get the filtered block itself.  However, it now
appears that SPV nodes will need to put in more effort to verify
loose txn than they would to verify txn in blocks, thus making it
more approriate to send the txn after the filtered block.
Replace 520 constant with MAX_SCRIPT_ELEMENT_SIZE
Add a notfound message to getdata that is sent if any transactions that aren't in the relayable set are requested.
Merge pull request #2188 from TheBlueMatt/bloom

Send transactions after a CMerkleBlock when asked for it in an inv.
Merge pull request #2192 from mikehearn/notfoundmsg

Add a notfound message to getdata.
Merge pull request #2167 from Diapolo/Qt_laa_flag

enable GCC large address aware linker flag (Windows only)
Merge pull request #2114 from sipa/strictstrict

Make IsCanonicalScript() check the hash type more thoroughly
Replace leveldb/ with vanilla 1.7.0
Remove Snappy support
Native Windows LevelDB port

Import native Windows LevelDB port by Hiram Chirino.

Extracted from from https://github.com/chirino/leveldb.git using
git diff dd0d562..aea83b7
Pre-Vista leveldb::port::InitOnce implementation
Mingw support for Windows LevelDB port
Port leveldb to MinGW32

Several changes to make the native windows leveldb code compile
with mingw32 and run on 32-bit Windows:
* Remove -std=c++0x dependency (modified code to use NULL instead of
  nullptr)
* Link with -lshlwapi
* Only #define snprintf/etc if compiling with Visual Studio
* Do not link against DbgHelp.lib (wrote a CreateDir instead of using
  DbgHelp's MakeSureDirectoryPathExists
* Define WINVER=0x0500 so MinGW32 can use the 64-bit-filesystem Windows
  api calls
* Define __USE_MINGW_ANSI_STDIO=1 to use MinGW's printf (which supports
  %ll)

I also cleaned up makefile.mingw, assuming that dependencies would be in
the standard /usr/local/{include,lib} by default but allowing overriding
with make DEPSDIR=... etc
Merge pull request #2187 from CodeShark/SyncWithWalletsFix

Bugfix - Moved SyncWithWallets out of ProcessMessage and into CTxMemPool::accept()
added utility to dump leveldb files
Fix corruption bug found and analyzed by dhruba@gmail.com

https://groups.google.com/d/msg/leveldb/Kc9JxuIUu5A/9P0N9RL4ar8J
Bitcoin-Qt: cleanup / optimise addressbookpage

- don't show QR Code context menu, when USE_QRCODE=1 was not specified
  when compiling the client
- re-work on_showQRCode_clicked() for better readability and remove an
  unneeded duplicate check
- re-work on_signMessage_clicked() and on_verifyMessage_clicked() to match
  foreach in on_showQRCode_clicked(), which seems more robust / cleaner
- re-order context menu stuff to match real context menu layout
- add comments for all private slots in the class
Merge pull request #2165 from Diapolo/Qt_addrbook_cleanup

Bitcoin-Qt: cleanup / optimise addressbookpage