standardize ID serialization

From #1285:
> What do we do with the `name` fields? Can we just fill in `id` across the board, or should we fill in the name where possible? (as I've kind of done here)
@jonboulle Would it make sense for this `ID` type to live in the raft package so we can use it *everywhere*?