Relax IsStandard rules for pay-to-script-hash transactions

Relax the AreInputsStandard() tests for P2SH transactions --
allow any Script in a P2SH transaction to be relayed/mined,
as long as it has 15 or fewer signature operations.

Rationale: https://gist.github.com/gavinandresen/88be40c141bc67acb247

I don't have an easy way to test this, but the code changes are
straightforward and I've updated the AreInputsStandard unit tests.
Merge pull request #4365 from gavinandresen/relax_isstandard

Relax IsStandard rules for pay-to-script-hash transactions
Show nodeid instead of addresses (for anonymity) unless otherwise requested.
Improved getblocks logging.

Conflicts:

	src/main.cpp
Add net2 debug option
Correct logic so that not both lines are displayed

e.g.:-
2014-02-25 06:56:39 received getdata (1 invsz)
2014-02-25 06:56:39 received getdata for: tx 8e2e08d1d851eb1ac800e814796dd7b86fd6d3a8fad41d5bdcb873ac6f4aba8d
Show only one zero instead of many when getblocks request received with a hashStop of uint256(0)
Max blocks in transit set to 16
Add CaughtUp() function (needed by later commits)
Record timings of block download process
Fix many orphan problem. Don't getblocks following orphan reception. (Needs CaughtUp())
Don't getdata blocks if an inv is received that wasn't requested (getblocks).

Also, show invs being received (and indicate whether we have the block or not).
Better logging of ProcessMessages() progress
Show downloaded block size and time taken to download.
Attempt to reselect a SyncNode when blocks aren't arriving.
No need to reset tBlockInvs
Display count of blocks (and new) arriving when not requesting them.
indentation
Rename MarkBlockAsReceived to MarkBlockAsRequested to reduce confusion.
Only disconnect a node (when changing syncnode) if it has blocks in flight.