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 
The hacky part is mainly that it's being done *here* and not at a lower level. I also think we may want to rig elections in other cases too - when we split a range, we can (mostly) ensure that the leader of the parent range will become the leader of the new range, which will minimize disruption to clients' knowledge of where the range leaders are.