LNK1189: library limit of 65535 objects exceeded

While implementing support for additional schema entities, debug builds have started to fail due to the LNK1189.

This is due to all symbols being exported using the WINDOWS_EXPORT_ALL_SYMBOLS option provided by cmake. Using this was implemented early on to simplify how symbols were exported, reducing the number of warnings produced otherwise.

While release builds still work, this is hampering development using debug builds. Changes are needed to remove use of WINDOWS_EXPORT_ALL_SYMBOLS to avoid LNK1189, with required symbols being exported explicitly instead, which will depend on refining exported components to reduce need to export other components.