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.

@spencerkimball @cockroachdb/developers 
Why do you think this is a hack? Seems reasonable to me actually... Is it just because it's useful for unittesting and not otherwise? Like I said, I can't really see the point of waiting for a randomized election timeout if there aren't other participants.