Support several patch files to be loaded
Fixed several older errors
Merge branch 'master' into patcher_include

Conflicts:
	patcher.py
Changed args syntax to avoid accidental patch overwrite
Merge branch 'master' into patcher_include

(merged fix related to #if's)

Conflicts:
	patcher.py
Fixed args bug introduced with 372e2b9460fa02dc71e188c2515c3841e6f2ddf1
patcher: check names for duplicate
Completed fix from 01c330811db142bdd73ba82c5f0a406195adc056
patcher: implemented #include

Also shift all output for included files
patcher: save source filename together with line number
Improved compatibility with older callers

Don't require args.patch to be a list, support older format (when it is
a single file object).
Also small refactoring.
Merge branch 'patcher_include'

This introduces support for several patch files
(but they must not have clashing block/global names),
and support for #include keyword.

Also this patch changes arguments format.
Now args.patch is a list of file objects (older syntax is also
supported).
When calling from command line, patch files are now passed directly,
and output file with a required option -o (--output).
So the new calling format is:
patcher.py [options] patchfile [patchfile...] -o output.pbz