Add multiple source file and templating support to file.append (#6905)

Allow states/file.append() to use multiple source files and templating
to generate the text to be appended to the 'named' file.  This allows you to use things like the following in your .sls file:
```

/tmp/foo:
  file:
      - append
      - template: jinja
      - sources:
          - salt://foo/part1.tmpl
          - salt://foo/part2.tmpl
          - salt://foo/part3.tmpl
      - defaults:
          custom_var: "default value"
          other_var: '123'
          override_me: 'fail!'

{% if grains['os'] == 'Debian' %}
      - context:
          custom_varx: "override"
          override_me: 'Pass!'
{% endif %}
```