Hack in shortest-proof calculation.

Instead of calculating shortest path, then deriving the proof, we should
be directly calculating the shortest proof (which is what we really want!)

This gives the following results for 1M entries over 20 runs:

array: proof hashes 367-2863(1416.4+/-7.8e+02)
optimal: proof hashes 315-2143(1031.7+/-5.6e+02)
breadth-batch: proof hashes 307-2327(1106.4+/-6.1e+02)
array-batch: proof hashes 282-2248(1050.6+/-6e+02)
optimal-prooflen: proof hashes 265-1719(818.2+/-4.4e+02)

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