Initial check in of branch for conflict resolution
Store fewer orphan tx by default, add -maxorphantx option

There is no reason to store thousands of orphan transactions;
normally an orphan's parents will either be broadcast or
mined reasonably quickly.

This pull drops the maximum number of orphans from 10,000 down
to 100, and adds a command-line option (-maxorphantx) that is
just like -maxorphanblocks to override the default.

Conflicts:
	src/main.h
Make max number of orphan blocks kept in memory a startup parameter (fixes #4253)

Rebased-From: 7b45d943b29a443f1ac808c9ee4eeed6df0db9cc

Conflicts:
	src/init.cpp
	src/main.h
From Bitcoin: ea3c1b0 and Bitcoin: af25208:  Add maximum orphan blocks and maximum orphan TX limits in memory, and accordant command line options in dogecoind. Basic tests to see if command line arguments changed maximum (predefined) limits.
Merge pull request #718 from michilumin/1.8.1-dev-limit-orphan-tx

1.8.1 dev limit orphan tx
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
Add checkpoints for 371,337 and 400,000 blocks, as well as intermediary blocks.
Merge pull request #723 from rnicoll/1.8.1-dev-checkpoints

Add AuxPoW checkpoint
Merge pull request #721 from rnicoll/1.8.1-dev-orphan

Stricter handling of orphan transactions