protocol: make testnet horizon 3 days.

12 hours makes it horribly difficult to send test transfers across timezones;
at least this gives us the weekend!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
recv_children: handle case where block isn't known properly.

We were falling through as if they said there were no children.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
peer: initiate new block query during sync.

We currently get a surprise next time a new block is generated, and fall
back to chasing prevs.  We should fix the sync protocol, but meanwhile, this
means we at least get those blocks before we consider ourselves "synced"

Note that this breaks our sync test: we don't get told about new blocks while
we're syncing (and we do that for much longer now).  We would normally
catch up when the next block arrived.  But we don't need the block inject
at all anymore to force synchronization, so remove it.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
blockfile: handle case where there are incomplete blocks in file.

We want to ask about any transactions we don't know about once we've loaded
the blocks and transactions off disk.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
peer: use recv_tx_from_peer().

We made the code more general and moved it into recv_tx.c, but never called
it!  Fix that so we don't have duplicated code (they're currently identical).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
check_block: don't hit think the current tx is a dup in check_tx_inputs_and_refs

We weren't excluding the existing transaction, which can happen when we're
doing check_resolved_txs().  This makes us think there's a doublespend
in the block!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>