Make IsCanonicalScript() check the hash type more thoroughly

0 and 128 were previously accepted as standard hash type.

Note that this function is not active in the current verification
code.
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
Merge pull request #2187 from CodeShark/SyncWithWalletsFix

Bugfix - Moved SyncWithWallets out of ProcessMessage and into CTxMemPool::accept()
Added locks on the setpwalletRegistered functions in main.cpp and added an UnregisterAllWallets function.