Use Github username for the committer if name and email are not set-up

This fix is mostly applicable to the Travis builds where user.email and
user.name are not configured by default.
Use list to pass commit arguments
Add -a and -n arguments to commit function
Use GitRepository commit() in the merge() function
Set debugging mode on for travis-merge operation in Travis build
Move merge operation to standalone low-level function
Use GIT_AUTHOR_EMAIL or GIT_AUTHOR_NAME when merging without config
merge master -D org -I include -E exclude: PR 82 (Add logic to create tag while updating submodules)
merge master -D org -I include -E exclude: PR 83 (Travis author)