Per-peer block download tracking and stalled download detection.

Keep track of which block is being requested (and to be requested) from
each peer, and limit the number of blocks in-flight per peer. In addition,
detect stalled downloads, and disconnect if they persist for too long.

This means blocks are never requested twice, and should eliminate duplicate
downloads during synchronization.
always show syncnode in getpeerinfo (fixes #2717)
Display progress of rescan.
Add progress to initial display of latest block downloaded.
Document that CPubKey.IsValid() is consensus critical
Require OSX 10.6, 64-bit

Drop support for 32-bit or pre-10.6 Macs.

Also, some of the OSX build docs hadn't been updated since the
autotools change.
Replace PrintException with PrintExceptionContinue + throw

Just a pet peeve.

(PrintException has exactly the same body as PrintExceptionContinue but
does a re-throw at the end. Move these re-throws to the call
site, this aids understanding what is going on as well as eliminates a
bit of code duplication in util.cpp)
convert tabs to whitespace in bitrpc.py

This is a minor change to bitrpc.py to conform with the formatting of
the other python source code in the repo.
Remove CWalletTx::vfSpent

Use the spent outpoint multimap to figure out which wallet transaction
outputs are unspent, instead of a vfSpent array that is saved
to disk.
Add shell null to else block

MinGW-W64-builds-4.2.0 shell doesn't like the empty else blocks.
Merge pull request #3749

4423571 Replace PrintException with PrintExceptionContinue + throw (Wladimir J. van der Laan)
move wallet info stuff to "getwalletinfo" rpc (left original wallet
stuff in getinfo call for backwards compatibility)

add wallet transaction count to getwalletinfo rpc call
Update build information

Add the command necessary to add ppa repository in Ubuntu

Refs #3757
Update build instructions for db4.8 on Debian and Unix
Merge pull request #3752

5d5b0d2 Add shell null to else block (Wil Bown)
Transifex pull pre-0.9.0rc2
Merge pull request #3761

a270ca2 Transifex pull pre-0.9.0rc2 (Wladimir J. van der Laan)
Re-enable UPnP by default in gitian builds

IIRC this was the case with 0.8.6, so let's keep this to avoid the risk
of losing connectable nodes with 0.9 release.

Also our miniupnpc library was recently updated and I've heard
reports that it works better than before now.
Merge pull request #3760 from ian-kelling/master

Update build instructions for db4.8 on Debian and Unix
Make tinyformat errors raise an exception instead of assert()ing

By default tinyformat errors such as 'wrong number of conversion
specifiers in format string' cause an assertion failure.

Raise an exception instead so that error handling can recover or can
show an appropriate error.