feat keep $constructor/$destructor in skin after normalization

Currently during skin normalization, we use JSON.stringify to convert the skin object into a string. This was fine until the skin definition consisted only of objects with properties.

However, since now skin needs to have $constructor/$destructor in order to load legacy style CSS templates, we need to tweak the skin object serialization to preserve the functions (which are abandoned by default by JSON.stringify).