qt: keep a list of requested payments

Keep a list of requested payments in the Receive tab so that a user can
recall previously created requests after closing their windows.

Currently this list is not stored between bitcoin-qt sessions. This can
be implemented later, but it is not clear where it should be stored as
I don't think it belongs in the wallet (maybe in QSettings?)
setgenerate creates multiple blocks in -regtest mode

I'm writing some wallet regression tests using -regtest mode, and
need to generate an initial multi-hundred-block chain. Repeatedly
calling setgenerate to generate one block is slow and doesn't
work properly, because block creation happens asynchronously.

This adds two features to setgenerate in -regtest mode:

1) Instead of being interpreted as number of threads to start, the
third argument is the number of blocks to generate.

2) setgenerate will not return until the block creation threads
have created the requested number of blocks.
cleanup error message consistency

  relicts from the CTransaction refactor.
Move types.h include before ifaddres.h for u_int declaration
Merge pull request #3300

848fe68 cleanup error message consistency (Julian Langschaedel)
contrib: add sipa's github-merge script
Merge pull request #3302

e5adec3 contrib: add sipa's github-merge script (Wladimir J. van der Laan)
[Qt] allow deletion of payment-requests in sendcoins

- this adds a delete button for insecure and secure payment requests in
  the sendcoins dialog
- it also enables the delete button even for single and empty entries, as
  this is much easier to handle and doesn't need to special case single
  entries
- big parts of the ui file were changed, because I copied the delete
  button and had to delete the layout too and created it from scratch
  (which seems to cleanup the rows and colums in the layout also, which is
  nice IMHO)
Merge pull request #3294

c8b7425 setgenerate creates multiple blocks in -regtest mode (Gavin Andresen)
Fix uninitialized variable added in b33b9a6fe

After discussing with BlueMatt, this appears to be harmless in its
current state since it's always set before it's used. Initialize it
anyway for readability and future safety.
Merge pull request #3316

106f133 Fix uninitialized variable added in b33b9a6fe (theuni)
Drop fees by 10x due to the persistently higher exchange rate.

The last fee drop was by 5x (from 50k satoshis to 10k satoshis)
in the 0.8.2 release which was about 6 months ago.

The current fee is (assuming a $500 exchange rate) about 5 dollar
cents. The new fee after this patch is 0.5 cents.

Miners who prefer the higher fees are obviously still able to
use the command line flags to override this setting. Miners who
choose to create smaller blocks will select the highest-fee paying
transactions anyway.

This would hopefully be the last manual adjustment ever required
before floating fees become normal.
Add some additional logging to give extra network insight.
Store and use a sanitized subVer
qt: restore icon dock menu

This was removed by 25c0cce7f. It was apparently removed in qt5, but
may return for 5.1.
Integration tests via RPC calls

qa/rpc-tests/wallet.sh runs a three-node -regtest network,
generates a fresh blockchain, and then exercises basic wallet
sending/receiving functionality using command-line RPC.
Split up bitcoinrpc (code movement only)

Split bitcoinrpc up into

- rpcserver: bitcoind RPC server
- rpcclient: bitcoin-cli RPC client
- rpcprotocol: shared common HTTP/JSON-RPC protocol code

One step towards making bitcoin-cli independent from the rest
of the code, and thus a smaller executable that doesn't have to
be linked against leveldb.

This commit only does code movement, there are no functional changes.
Merge pull request #3319

871ac37 qt: restore icon dock menu (theuni)
Merge pull request #3296

a946aa8 Store and use a sanitized subVer (Mike Hearn)
ba6a4ea Add some additional logging to give extra network insight. (Mike Hearn)
Merge pull request #3284

fb78cc2 Split up bitcoinrpc (code movement only) (Wladimir J. van der Laan)