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?)
autogen.sh: Add a /bin/sh shebang.
autogen.sh: Use set -e to fail if any command fails

In preparation for expanding autogen.sh.
autogen.sh: Support running from outside the source directory

Initial steps towards supporting out-of-tree builds.
autogen.sh: Use long options to autoreconf, for self-documentation
autogen.sh: Stop passing --verbose to autoreconf

This quiets down the autotools build, making warnings much more visible.
configure.ac: Check for miniupnpc headers, not just -lminiupnpc

This protects against broken systems which have libminiupnpc.a or
libminiupnpc.so installed but don't have the miniupnpc headers.
src/Makefile.am: Simplify clean of leveldb
[Qt] small notificator and style changes

- remove default arguments for notificator
- re-order some calls to use same ordering in Qt files
- style police changes (spaces, comments and such)
Payment request URI syntax changed, from request=... to r=...

BIP 72 was changed to save six bytes in bitcoin: URIs.
Move HelpExample* from rpcwallet to rpcserver

General functions used throughout the RPC framework
don't belong in rpcwallet.
Move getinfo to rpcnet.cpp

Where to place `getinfo` is a difficult issue
as it shows information from the wallet, net and
block chain. However, I moved it out of rpcwallet
as the command needs also to be available without
wallet.
Delimit code with #ifdef ENABLE_WALLET

Delimit all code that uses the wallet functions
in implementation files that conditionally use the wallet.
Move CAddrDB frrom db to net

This was a leftover from the times in which
peers.dat depended in BDB.

Other functions in db.cpp still depend on BerkelyDB,
to be able to compile without BDB this (small)
functionality needs to be moved to another file.
Add --disable-wallet option to build system

Make it possible to build Bitcoin without wallet
(and thus without BDB) so that it only functions as node.
Update build-unix.md to mention --disable-wallet

Mention the new --disable-wallet mode.
Also, correct the BDB entry in the dependencies table.
Move CCryptoKeyStore to crypter.cpp

This breaks the dependency on crypter for disable-wallet builds.
Split off rpc_wallet_tests

Split wallet tests from other RPC tests.
Now no #ifdef ENABLE_WALLET are needed anymore in either file.
Prevent empty transactions from being added to vtxPrev

CWalletTx::AddSupportingTransactions() was adding empty transaction
to vtxPrev in some cases. Skip over these.

Part one of the solution to #3190. This prevents invalid vtxPrev from
entering the wallet, but not current ones being transmitted.
Refuse to retransmit transactions without vins

Versions of bitcoin before 0.8.6 have a bug that inserted
empty transactions into the vtxPrev in the wallet, which will cause the node to be
banned when retransmitted, hence add a check for !tx.vin.empty()
before RelayTransaction.