Job.set_or_update(): create Nodes if necessary

Test included!
Slight optimization of Job.set_or_update()

Related to filling-out of Job.target_nodes. Another test included.
Add a few unit tests for models.Node