Stop network serializing prototypes

[Breaking Changes]
Various prototypes have been made no longer [NetSerializable, Serializable], and places these were directly serialized over the network have been changed to use ProtoId<T> instead.