add documentation to reference test
merge: allow taking 1 argument

technically valid use-case; it could be a strong independent template that
don't need no stubs
merge: implement cascading template functionality

This allows templates to be broken into smaller, isolated pieces.

The 'merge' command now uses this behavior, which is backwards-compatible.

Semantics:

  spiff merge a.yml b.yml c.yml d.yml > final.yml

is now equivalent to:

  spiff merge d.yml                   > 0.yml
  spiff merge c.yml 0.yml             > 1.yml
  spiff merge b.yml 1.yml 0.yml       > 2.yml
  spiff merge a.yml 2.yml 1.yml 0.yml > final.yml

In this case, b.yml can be another template that builds itself up from the
contents of c.yml and d.yml (and both of these could also be templates).
However b.yml can never look "up" into a.yml.

This keeps the mental model (and implementation) simple; a template is still
totally in control of its structure, and never has to know about other
templates.