make "want_to_live" private for now

...until we are sure whether to include all consumers in its chain etc
_has_unpaid_charges is, for now, pretty generic
make _replacement_chain_want_to_live deal with not-unpaid links
do not include unpaid charges in new expiration date

Since we now only show the "old date" including non-unpaid (!)
consumers, we must then update the "new date" to act similarly.

This means we're no longer showing you the expected new expiration date
at all if you've got open invoices.  Instead, we should be reissuing
invoices, if possible, when you would get a psync notice.

That will happen in subsequent commits.
reorder some psync operations

This will let us redispatch at the end for specialized operations like
"reinvoice" or "build and send quote."
avoid long lines
reformat a loop to make it easier to shove in diagnostics

and avoid long lines
make sure invoices are paid before doing psync testing
make sure invoices are paid before doing psync testing
allow SelfFunding consumers to "psync" charge non-quotes

Before this commit, psyncking would always create a new psync quote, so
it was safe to assert that if a SelfFunding (or other) consumer was
doing a psync charge, the current invoice better be a psync quote.

The intent, now, is going to be to for consumers to reinvoice if they
need to psync and haven't yet been paid.  That means that the b5g1
consumer might not find a psync quote onto which to put its adjustment
charge.  We want to allow this.
create a condition under which to reinvoice rather than psync-quote
reformat some code
removed unused lexical variable
replace an else block with unqualified code

This is a simplification I like.
drop unused import from ByTime.pm
do not re-compute the chain needlessly
make the ChargeTodaysDate invoice some extra funds

Without this, it was invoicing $1 (for Jan 1) on creation, but never
paying, it because the "bank" option to the factory puts funds directly
into the consumer, rather than paying off any invoices.

As I was looking into code to reinvoice, rather than psync, when a
psync would affect a consumer with an unpaid invoice, this test started
to show up via diagnostics.  It wanted to reinvoice.

Why?  Because its invoice was not paid!

So, I took $1 from the bank and put it into a credit so that the invoice
for $1 and $499 more were sent to the consumer directly.  This seemed
like it was going to cause more trouble, and certainly wasn't as easy to
explain, so now the consumer just asks for an extra hundred bucks up
front.

(Finally, I had also considered having the consumer start on the 31st of
December so that the 1st, 2nd, 3rd, etc. of January would all fit within
the inital $31, but of course the first journal charge would be for $31,
meaning that we'd blow all the money at once.  By definition, this
consumer can't live more than a day without asking for extra up front.)

This test would've been easier to fix if we could use ByTime without
psync.  We'll still want that later for this kind of test, because the
shortfall really does change.
get rid of bizarre/pointless 1000yr lead time in tests
testing whether ByTime does InvoiceOnCreation is pointless
remove a pointless test