lnd: implement update pipelining and htlc trickling+batching
lnd: implement update pipelining and htlc trickling+batching

This commit *significantly increases* the payment throughput per-core,
per-channel of the daemon.

With this commit updates are properly pipelined respecting the current
revocation window, htlc updates are batched, a timer is checked to push
chain convergence, and htlc update below the batch size are
periodically flushed to the remote chain.

The current pending update timer, trickle timer, and batch size have
been arbitrarily chosen based on my local tests. In the future these
parameters should be chosen to optimize response-time and throughput
after measurements are gathered.

ddustin/lnd,AndrewSamokhvalov/lnd,LightningNetwork/lnd,bryanvu/lnd,bryanvu/lnd,ddustin/lnd,AndrewSamokhvalov/lnd,aakselrod/lnd,LightningNetwork/lnd,aakselrod/lnd