prevent peer flooding request queue for an inv

mapAlreadyAskedFor does not keep track of which peer has a request queued for a
particular tx. As a result, a peer can blind a node to a tx indefinitely by
sending many invs for the same tx, and then never replying to getdatas for it.
Each inv received will be placed 2 minutes farther back in mapAlreadyAskedFor,
so a short message containing 10 invs would render that tx unavailable for 20
minutes.

This is fixed by disallowing a peer from having more than one entry for a
particular inv in mapAlreadyAskedFor at a time.
Remove unused function main:VerifySignature
Remove CScriptCheck::nHashType (was always 0)
Don't pass nHashType to VerifyScript
Don't pass nHashType to EvalScript nor CheckSig
Merge remote-tracking branch 'bitcoin/pr/4547'
Merge PR 4555