Initial support for complex tokens which require serialisation when transmitted. It uses serialisation, deserialisation, size and free function exported in the port structure from the actor dynamic library. Create unique sender and receiver actors also based on which serialisation function is used. Complex tokens always arrive as a pointer in the FIFO. Calvin free the pointed to memory after serialisation, similar to Caltoopia generated actors free in the receiving actor. FIXME this does not work for ports with fan-out and complex tokens.
Updated examples with a NULL pointer in port descriptions since now required in Calvin version 2.0.