per-key actor epoch (kv679) rebased on 2.0

See original PR for discussion, rebased for easier merge (before squashing.)

This PR addresses most of the comments from the original PR at basho/riak_kv#1040
Because I don't want to deal with symbolic vs dynamic and mutating the state representation at generation time. What is MUT?