Allow the default key to be unavailable

This solves the issue where no default key can be added after -salvagewallet.

Conflicts:
	src/main.cpp
	src/wallet.cpp
prepare for changing block hash
complete check for low S in signatures
fix unconfirmed balance if wallet contains conflicted transactions
Squashed 'src/leveldb/' changes from 9094c7f..7924331

42dcc7e Merge upstream LevelDB 1.17.
e353fbc Release LevelDB 1.17
269fc6c Release LevelDB 1.16
REVERT: 9094c7f Temporarily revert to writing .sst files instead of .ldb

git-subtree-dir: src/leveldb
git-subtree-split: 79243314e40ac31d79c68e5658a1d6a64800d50b
update build docs
follow 10-confirms recommendation in coin selection
update build docs
json_spirit: #include <stdint.h>
switch from boost int types to <stdint.h>

Conflicts:
	src/rpcblockchain.cpp
	src/rpcclient.cpp
	src/rpcmining.cpp
	src/rpcmisc.cpp
	src/rpcnet.cpp
	src/rpcrawtransaction.cpp
	src/rpcwallet.cpp
Merge remote-tracking branch 'upstream/master'