when merging arrays, match entries by name first

If an entry is merged in but has a name matching an existing entry (i.e.
BOSH's list of hashes with names), it will not be added in with the rest, so
that the name-based overriding will happen instead. This is ideal for e.g.
adding doing a merge of jobs from different releases, and also supporting
templates that override just a single attribute of an existing jobs (e.g.
instance count).