init: minor parameter interaction updates

- use __func__ instead of hard-coded function name for logging
- update -discover help message to reflect newly added parameter
  interaction
- use DEFAULT_LISTEN in a parameter interaction check instead a hard coded
  value
Apply AreSane() checks to the fees from the network.

'Sane' was already defined by this code as:
 fee.GetFeePerK() > minRelayFee.GetFeePerK() * 10000
 But sanity was only enforced for data loaded from disk.

Note that this is a pretty expansive definition of 'sane': A 10 BTC
 fee is still passes the test if its on a 100kb transaction.

This prevents a single insane fee on the network from making us reject
 our stored fee data at start.  We still may reject valid saved fee
 state if minRelayFee is changed between executions.

This also reduces the risk and limits the damage from a cascading
 failure where one party pays a bunch of insane fees which cases
 others to pay insane fees.
docs: update gitian building docs
Enforce minRelayTxFee on wallet created tx and add a maxtxfee option.

Previously the minRelayTxFee was only enforced on user specified values.

It was possible for smartfee to produce a fee below minRelayTxFee which
 would just result in the transaction getting stuck because it can't be
 relayed.

This also introduces a maxtxfee option which sets an absolute maximum
 for any fee created by the wallet, with an intention of increasing
 user confidence that the automatic fees won't burn them. This was
 frequently a concern even before smartfees.

If the configured fee policy won't even allow the wallet to meet the relay
 fee the transaction creation may be aborted.
contrib: make github-merge require signing

- Exit when there is no signing key configured
- Exit when user does not want to sign off
Reject headers that build on an invalid parent
DOS: Respect max per-peer blocks in flight limit

Don't allow immediate inv driven block downloads if
a peer already has MAX_BLOCKS_IN_TRANSIT_PER_PEER
active downloads.  Prevents bogus inv spam from
blowing up block transfer tracking data structures.
Merge pull request #5517

39c8099 contrib: make github-merge require signing (Wladimir J. van der Laan)
Merge pull request #5459

3497022 Reject headers that build on an invalid parent (Pieter Wuille)
Merge pull request #5485

aa279d6 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option. (Gregory Maxwell)
Merge pull request #5481

6484930 Apply AreSane() checks to the fees from the network. (Gregory Maxwell)
Merge pull request #5507

c907704 DOS: Respect max per-peer blocks in flight limit (Adam Weiss)
Merge pull request #5512

dd14a0e docs: update gitian building docs (Cory Fields)
en: Avoid ambiguous language regarding when transactions confirm
gitian: attempt to fix tarball determinisim
Fix CScriptID(const CScript& in) in empty script case

Previously an empty script wouldn't be hashed, and CScriptID would be
assigned the incorrect value of 0 instead. This bug can be seen in the
RPC decodescript command:

    $ btc decodescript ""
    {
        "asm" : "",
        "type" : "nonstandard",
        "p2sh" : "31h1vYVSYuKP6AhS86fbRdMw9XHieotbST"
    }

Correct output:

    $ btc decodescript ""
    {
        "asm" : "",
        "type" : "nonstandard",
        "p2sh" : "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy"
    }
Merge pull request #5541

d78f0da Fix CScriptID(const CScript& in) in empty script case (Peter Todd)
Merge pull request #5536

566c6cb gitian: attempt to fix tarball determinisim (Cory Fields)
Merge pull request #5533

a15dba5 en: Avoid ambiguous language regarding when transactions confirm (Luke Dashjr)
Merge pull request #5272

13f9031 init: minor parameter interaction updates (Philip Kaufmann)