This is necessary since we do the new caching and need to distinguish between styles with different IDs. Fixes various test cases.
The main cause here were the wrong style classes being removed, such as "message-dialog" instead of "csd" for GtkMessageDialog.
GtkCssNodeDeclaration is a new struct with copy-on-write semantics. It encapsulated the properties used to define a node in the CSS tree. The idea is to use it in various places for caching, in particular as key in hash tables.