More tolerable on patch header

Quilt patches have headers different with GNU patches, make more tolerable
on patch headers.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Verious fixes when patch on new files

 * Create parent directory when patch on new (non-exist) file.
 * Read from real file instead of '/dev/null' when patch new file.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Nice output support colors and verbose mode

Add new options "-v/--verbose" and "-q/--quiet" for output, and also
support color output.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Match hunk from tail if mark hunk using ">"

Add syntax for hunk patch direction (from head or tail):

 * "<" right after hunk header (@@) means patching from the beginning.
 * ">" right after hunk header (@@) means patching from the tail.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Instead of using "RE:", use new pattern syntax: "/"

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Not match patched file if pattern prefix with "?"

When a pattern start with "?", such as:

    ? Text In original file, but may changed or remove from target.
    ?/ Regexp matches origin text, but may not match target.
    ?+ Not in original, should add to target, but maybe not.

Not check patterns on target file.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>