Node target_platform fallbacks to default_platform

The default platform of the nodes is inferred from the platform of the
admin node (and is empty if there's no admin node - possible bug?)

Move the default_platform helper code to NodeObject class, where it gets
cached.

Then use it in the target_platform as a fallback.