Stricter handling of orphan transactions

Prevent denial-of-service attacks by banning
peers that send us invalid orphan transactions
and only storing orphan transactions given to
us by a peer while the peer is connected.

Rebased-From: c74332c67806ed92e6e18de174671a7c30608780

Conflicts:
	src/main.cpp
Merge pull request #721 from rnicoll/1.8.1-dev-orphan

Stricter handling of orphan transactions