Refactoring of MacroStringHelper: annotations, proper variables substitution, etc

Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>
Minor refactoring of PerforceSCM class

Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>