listreceivedbyaddress now provides tx ids (issue #1149)
Updated help and tests for getreceivedby(account|address)
remove obsolete and unused typedef for Windows
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
It's after 2013-05-15 forever now, so remove the code for the May 15 fork.
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>
Replace repeated GetBoolArg() calls with Checkpoint::fEnabled variable
set once at init time.
Don't attempt to resize vector to negative size.
Made more generic by removing specific version references

Tweaked a little bit to provide examples.

Squashed commits into 1, while hoping not to break anything
Merge pull request #2697 from Michagogo/master

Make release-process.md more generic
Merge pull request #2657 from gmaxwell/its_after_may15_forever

It's after 2013-05-15 forever now, so remove the code for the May 15 fork
Move pMiningKey init out of StartRPCThreads

This commit decouples the pMiningKey initialization and shutdown from the RPC
threads.

`getwork` and `getblocktemplate` rely on pMiningKey, and can also be ran
from the debug window in the UI even when the RPC server is not running.

Solves issue #2706.
Merge pull request #2104 from al42and/listreceivedbyaddress_txids

listreceivedbyaddress now provides tx ids (issue #1149)
Merge pull request #2693 from jgarzik/checkpoint-bool

Replace repeated GetBoolArg() calls with Checkpoint::fEnabled variable set once at init time
Merge pull request #2600 from sipa/keyrefactor

Refactor key.cpp/.h
Merge pull request #2625 from gavinandresen/walletlock_asio

Use boost::asio::deadline_timer for walletpassphrase timeout
Merge pull request #2642 from sipa/rightgenesis

Check for correct genesis
Merge pull request #2644 from sipa/constfindblock

Make FindBlockByHeight constant-time
Merge pull request #2705 from robbak/crash_zero_size_peers.dat

Don't attempt to resize vector to negative size.
Merge pull request #2716 from laanwj/2013_05_30_getwork

Move pMiningKey init out of StartRPCThreads