Praefect seperate read and write RPCs
Classification of RPCs needs to happen to separate read ops, from write operations. This is required, as write operations need to be performed on each replica to keep the replica's up-to-date and consisten, or if write replication isn't happening yet; marking the replica's out of date. If an RPC doesn't have side effects, it doesn't need to be replicated across multiple nodes and can be send to any up to date replica.
Another reason to do so, is that it gives insight in how much work needs to happen for Gitaly HA. The current understanding is that each RPC will need work to make it praefect.
Prior work: gitaly-proto!228 (merged)