Raft: log storage interface and multinode integration

This branch introduces a pluggable interface for on-disk storage of logs, and brings MultiNode up to date with some upstream changes in the Node interface (the new Advance method). It's still something of a work in progress, but the next step is to implement this interface in cockroach to make sure it meets our needs before pushing it back upstream.

@spencerkimball @cockroachdb/developers 
I've added some new commits to the branch that change the way this initial entry is handled. In 147fd614ced3e496c331524cb461ec97f52eb5ad this entry is created in unstableEnts instead of being pre-populated in the Storage object. This is also related to the issues in coreos/etcd#1689.