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).