Simplified the targeting of platforms for native components

- Platforms declared within a build script no longer have ‘precedence’ over canned platforms
- If no platform is targeted for a component, one of the canned platforms will be chosen
- Use explicit targeting of platform in more tests
Further simplification of native platform construction

- Moved initialization of canned instances to new class NativePlatforms
- Removed the need for a default instance to be maintained
Renamed NativePlatforms.defaultName -> NativePlatforms.defaultPlatformName