Fix array merging logic during attribute merging

This PR changes the behavior of merging two arrays. New behavior is:

  If merge is happening across the precedence levels (i.e. default, override, etc...)
     => Pick the array from the higher precedence level
  If merge is happening at the same precendence level (i.e. when we are merging role default attribute with node default attributes)
     => Concatanate the arrays.

WIP: Needs spec fixes.