this patch adds a new %m format character to the commitinfo trigger to provide the log message in escaped format.

what for ?
in order to enable selection of different validation behavior (e.g. bypassing of validation in special cases), using the same commitinfo setup and the same filter.

use case:
- I have hundreds of CSV files stored in CVS, saving users data.
- I want to make a wholesale change of format to these files.
- I have already made the change to the files, ran my own checks to verify the format before committing, and now I want to commit it.
- the usual validation checks will take a very long time for this kind of commit, so I would like to skip them. However, I do not want to mess with the commitinfo file as other people continue their work on other files and I would like validation to be performed as usual for what they commit.
- in my log message, I will signal that validation is to be skipped using some keyword that the filter will recognize. example message:
change to new format
OPTION: SKIP_VALIDATION

as I have found, users sometimes include quotes inside their log messages. e.g.
"new splash screen for 'killer feature' demo"
however, shell_escape() had a bug which caused quotes and double quotes to be treated as the same.
to fix this, a fix in src/run.c to function shell_escape() is included. this will handle the case of quotes inside quotes.