remove obsolete and unused typedef for Windows
Remove leveldb in preparation for git-subtree
Squashed 'src/leveldb/' content from commit aca1ffc

git-subtree-dir: src/leveldb
git-subtree-split: aca1ffc4b65be5e099b2088c6e6a308d69e1ad73
Merge commit 'c25e98186d0f716451ef000e55646d25e014f573' as 'src/leveldb'
Use boost::asio::deadline_timer for walletpassphrase timeout

New method in bitcoinrpc:  RunLater, that uses a map of deadline
timers to run a function later.

Behavior of walletpassphrase is changed; before, calling
walletpassphrase again before the lock timeout passed
would result in: Error: Wallet is already unlocked.

You would have to call lockwallet before walletpassphrase.

Now: the last walletpassphrase with correct password
wins, and overrides any previous timeout.

Fixes issue# 1961 which was caused by spawning too many threads.

Test plan:

Start with encrypted wallet, password 'foo'
NOTE:
 python -c 'import time; print("%d"%time.time())'
... will tell you current unix timestamp.

Try:

walletpassphrase foo 600
getinfo
EXPECT: unlocked_until is about 10 minutes in the future

walletpassphrase foo 1
sleep 2
sendtoaddress mun74Bvba3B1PF2YkrF4NsgcJwHXXh12LF 11
EXPECT: Error: Please enter the wallet passphrase with walletpassphrase first.

walletpassphrase foo 600
walletpassphrase foo 0
getinfo
EXPECT: wallet is locked (unlocked_until is 0)

walletpassphrase foo 10
walletpassphrase foo 600
getinfo
EXPECT: wallet is unlocked until 10 minutes in future

walletpassphrase foo 60
walletpassphrase bar 600
EXPECT: Error, incorrect passphrase
getinfo
EXPECT: wallet still scheduled to lock 60 seconds from first (successful) walletpassphrase
Check for correct genesis

At startup, check that the expected genesis is loaded. This should prevent
cases where accidentally a datadir from the wrong network is loaded
(testnet vs mainnet, e.g.).
Make FindBlockByHeight constant-time.

Remove the pnext pointer in CBlockIndex, and replace it with a
vBlockIndexByHeight vector (no effect on memory usage). pnext can
now be replaced by vBlockIndexByHeight[nHeight+1], but
FindBlockByHeight becomes constant-time.

This also means the entire mapBlockIndex structure and the block
index entries in it become purely blocktree-related data, and
independent from the currently active chain, potentially allowing
them to be protected by separate mutexes in the future.
It's after 2013-05-15 forever now, so remove the code for the May 15 fork.
fix memory leak in CKey::SetCompactSignature()
Fix memory leak on exception in Key::SignCompact
osx: make use of the 10.8+ user notification center to display growl like notifications

- if 10.8, use user notification center, if <10.8, use growl

Signed-off-by: Jonas Schnelli <jonas.schnelli@include7.ch>
Explictly cast calculation to int, to allow std::max to work.
Explicitly #include stdarg.h, for access to va_list
Replace repeated GetBoolArg() calls with Checkpoint::fEnabled variable
set once at init time.
Merge pull request #2696 from robbak/util_h-Add_stdarg_include

Explicitly #include stdarg.h, for access to va_list
Don't attempt to resize vector to negative size.
Merge pull request #2695 from robbak/init_cpp-explicit_cast

Explictly cast calculation to int, to allow std::min to work.
Prepare for 0.9 merge window
Merge pull request #2713 from sipa/zerodotnine

Prepare for 0.9 merge window
Merge pull request #2671 from bytemaster/master

Fix Memory Leak