Add a generic approach for (de)serialization of objects using code in other classes
Add a generic approach for (de)serialization of objects using code in other classes

This adds the (internal) Wrapper class, and the Using function that uses it. Given
a class F that implements Ser(stream, const object&) and Unser(stream, object&)
functions, this permits writing e.g. READWRITE(Using<F>(object)).

PIVX-Project/PIVX,Darknet-Crypto/Darknet,PIVX-Project/PIVX,PIVX-Project/PIVX,PIVX-Project/PIVX,PIVX-Project/PIVX,PIVX-Project/PIVX,PIVX-Project/PIVX,Darknet-Crypto/Darknet,Darknet-Crypto/Darknet,PIVX-Project/PIVX,Darknet-Crypto/Darknet,PIVX-Project/PIVX,Darknet-Crypto/Darknet,Darknet-Crypto/Darknet