p4_dscm. Add p4_dscm script.

Initial code.
Added a repo base class that holds common repository command execution
code.
Added p4 repo class that can execute a few basic p4 commands.
Added basic argument parsing - supports p4 sync only for now.
p4_dscm. Start implementation of sync command.

Parse p4 cstat output to get the list of change lists to sync, and the
type of sync required for each one.
p4_dscm. Continue implemntation of sync - only print actions

Get the list of CLs to sync
For each CL get the list of files to sync - generate a forced sync for
each file.
For each CL generate a git add (forced) of the files.
For each CL generate a git commit (allow empty).
p4_dscm. Complete incremental sync implementation.

Remove debug prints.
Fix p4 depot path to git path translation.
Handle p4 depot del file action.
p4_dscm. Bug fixes.

Remove debug chunk print from some git repo methods.
Improve detection of p4 del action in p4 repo get change list description.
Merge branch 'master' into p4_dscm
p4_dscm. Bug fixes to sync.

Fix crashes in sync command due to wrong variables used.
Fixed a bug on how a full sync CL list is generated.
p4_dscm. Add support for full P4 sync.

Will only use full sync if there is an issue with performing per CL sync -
out of order sync history.
In the future this will be changed to use git to reorder commits so the
git history matches the p4 history.
This change also includes minor fixes to the per CL sync.
p4_dscm. Fix issues with sync.

Only sync if there are files to sync.
Add prints to show which CL is being synced, and the type of sync.
Fixes to full sync, so it syncs to the most updated CL required for the
full sync.
p4_dscm. Start implementation of change command.

Add change command.
Add submit command - skeleton only.
Start implementation of change command - validate the remote repository
and branch.
p4_dscm. Add support for verbose option.

Verbose option prints all SCM commands and their output.
p4_dscm. Bug fixes to path calculations.
p4_dscm. Add an option to log output to a log file.
p4_dscm. Start impementation of the change command.

This just includes code changes, it has not been tested, and probably
doesn't work.
p4_dscm. Buf fixes to sync.

Fix full sync so the change list p4 suffix is not added to the git add/rm
commands.
Raise an error if a local path is not a file in p4 depot path to local
path.
p4_dscm. Remove error on empty path from p4 depot path to local

The path can be empty (not a file) if the p4 file was removed or added in
the syne.
p4_dscm. Complete implementation of change command.
p4_dscm. Bug fixes.

Only close the log file, if the log option was used.
Fix an issue in p4 path to local path, put the path inside "" so that p4
will handle spaces correctly in the path.
Fix an issue in get change list description, add '-' to the regular
expression match for the files in the change list.
Merge branch 'p4_dscm' of https://github.com/xykivo/tools into p4_dscm
p4_dscm. Add a common cl branch name utility function.

Replaces teh cl branch name utilities in change and submit commands.