Add a "patch" source type

It's currently possible to add patches as a local source: https://gitlab.com/BuildStream/gnome-test-data/blob/48e30c94a85477566c5c77d2790545955d12c6c2/elements/core-deps/mozjs38.bst

It would be much nicer to be able to add patch sources, for example something like this:

sources:
- kind: tar
  url: ...
  ref: ...
- kind: patch
  path: ...
  strip-components: 0

The strip-components would default to 1 (like in flatpak-builder manifests) as that's probably the most common these days given how everybody uses Git.

BuildStream would then automatically patch the sources with the patch sources, in the order they are declared.