Revert "Revert "Make EncodeXDRInto/DecodeXDRFrom public and handle external packages""
Revert "Revert "Make EncodeXDRInto/DecodeXDRFrom public and handle external packages""

This reverts commit 03e63d0b968219dd006b17c337f8a6581332f1ab.

calmh/xdr,calmh/xdr