lnwallet: create new updateLog abstraction within channel state machine
lnwallet: create new updateLog abstraction within channel state machine

This commit adds a new struct to the channel state machine: updateLog.
updateLog encapsulates the update log linked list itself, a series of
new counters we’ll need in order to switch to the spec’s state machine
and also the index into the log itself. This new struct serves to
simplify much of the logic surrounding the update log and also
elminates a bit of code duplication within the current state machine.

This commit only adds the new struct. The rest of the state machine
will be updated in a later commit to use the new log and its new
counters.

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