It's no longer needed after the io.GetVarSize() improvement. It's duplicating a lot of EncodeBinary() logic also.
Use writes to a fake io.Writer that counts the bytes. Allows us to kill Size() methods as useless and duplicating lots of functionality.
It's mostly used for Serializable and in other cases where one needs to estimate binary-encoded size of the stucture. This also simplifies future removal of the Size() from Serializable.