Add support for routing all storage operations through raft.

The tests pass with this change most of the time but there are some
timing issues around the initial election and tests using IsTrueWithin,
so everything still uses noopRaft until that can be fixed.
Completely replace noopRaft with singleNodeRaft.
Make localRPCTransport thread-safe; panic on unknown errors from Accept.
Fix a race in storage tests.
Remove nil check for ProposeRaftCommand.
Merge branch 'use-raft'

* use-raft:
  Remove nil check for ProposeRaftCommand.
  Fix a race in storage tests.
  Make localRPCTransport thread-safe; panic on unknown errors from Accept.
  Completely replace noopRaft with singleNodeRaft.
  Add support for routing all storage operations through raft.

Conflicts:
	storage/store.go