*: add Advance interface to raft.Node

Node set the applied to committed right after it sends out Ready to application. This is not
correct since the application has not actually applied the entries at that point. We add a
Advance interface to Node. Application needs to call Advance to tell raft Node its progress.
Also this change can avoid unnecessary copying when application is still applying entires but
there are more entries to be applied.
Advance notifies the Node that the application has applied progress up to to the given index; it prepares the node to return the next available Ready