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
schedule hardfork
new block time rules
change block time from 60 to 64 seconds
new stake protocol
block version 7

use double sha256 instead of scrypt for block hash
using scrypt provides no advantage and is orders of magnitude slower
adapt stake miner to new protocol
adapt GetStakeWeight() to new protocol
adapt GetPoSKernelPS() to new protocol
force testnet