* support List of strategic merge patches
* add test for List of patches
* handle List in SliceFromBytes
* add test for List of patches with anchor/reference
* reorganize kunstruct validate
Fixes#366
To reproduce #366, add
```
bases:
- .
```
to `examples/helloWorld/kustomization.yaml`, attempt to build it, and enjoy the stack overflow.
This PR fixes this by adding history to file loaders,
allowing one to avoid cycles in overlay->base
relationships. To make entry points clearer, this PR
exposes only two public ways to make a fresh
(no-history) loader
* rooted at `/`
* rooted at the process's current working directory.
When making a new loader from an existing loader,
retaining history along an overlay trace, the only
allowed use is to go deeper into a file hierarchy, or
go up and over to a never before visited sibling. This
fix can probably be defeated by devious symbolic links.