[IFRT] Change {From,To}ShardingProto to Sharding::{From,To}Proto.
[IFRT] Change {From,To}ShardingProto to Sharding::{From,To}Proto.

`FromShardingProto` and `ToShardingProto` were top-level functions for
`Sharding` (de)serialization. To make the API user-facing (de)serialization
consistent across IFRT types, this change move them into `Sharding`'s
`FromProto` and `ToProto` methods.

This also makes `sharding_serdes.cc` to be linked only for `SerDes`
implementations of basic `Sharding`, similar to other `*_serdes.cc` are used.

The users of `Sharding` (de)serialization only need to include `sharding.h`,
not `sharding_serdes.h`.
