More robust handling of function pointers. Previously, the synchronization library created function pointers that pointed to constructors of types. This usage could interfere with normal usage since the `Fn` class did not match based on reference/non-reference parameters. This is now fixed, and function pointers to constructors can be created. The serialization library now utilizes this kind of function pointers as well, which has the additional benefit that it simplifies the implementation of the serialization decorator as well.