Check signatures before double-spend relay

After it passes anti-DoS checks, mark a respend as relayable, but do not actually relay it until after the inputs are completely checked (for valid signatures especially).

This fixes a problem with #3883.

In fact it does not, and my earlier tests failed to catch it.  I'm going to turn this into a regular function call until we need multiple slots; hope that's alright.