Merge Dynamo Core Modularisation work

This merge folds in Dynamo Core Modularisation into master, fixed up so it can merge.

Please see https://github.com/DynamoDS/Dynamo/pull/3449 for details.

This work is regrettably going to disrupt the following. These will need re-applying.

https://github.com/DynamoDS/Dynamo/pull/3456
https://github.com/DynamoDS/Dynamo/pull/3454
https://github.com/DynamoDS/Dynamo/pull/3452
https://github.com/DynamoDS/Dynamo/pull/3438
https://github.com/DynamoDS/Dynamo/pull/3426

Confirmed to build locally.
< 50 regressions are expected