AppUpdater: Add ability to include metadata files in diffs

Branched from https://github.com/endlessm/xdelta3-dir-patcher/pull/11 so don't merge until that PR is included.

[endlessm/eos-shell#3985]
@sgnn7 I think one or more args is `+`. https://docs.python.org/3/library/argparse.html#nargs. You don't need to specify `nargs` at all. Just specify a default of `None` and that will be used if the option wasn't specified.
```
$ cat args.py
#!/usr/bin/python3

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-m', '--metadata', default=None)
parser.add_argument('posarg')
print(parser.parse_args('foo'.split()))
print(parser.parse_args('-m blah foo'.split()))
print(parser.parse_args('-m foo'.split()))
$ ./args.py
Namespace(metadata=None, posarg='foo')
Namespace(metadata='blah', posarg='foo')
usage: args.py [-h] [-m METADATA] posarg
args.py: error: the following arguments are required: posarg
```
It's fine by me if you want to keep it this way, but it's weird to allow a `--metadata` option with no argument.