Add generic VCS interface
Add generic VCS interface

This replaces the _lp_git_branch_color() function, and will soon replace
the color() functions for all VCS, but for now they will just return
nothing. The function is the same, just renamed and using the generic
interfaces intead of the Git ones.
Move the VCSH and Git-SVN checks into the smart_mark() function, since
knowing they exist is only used there. We don't treat those repos as
different from Git repos except to display a custom prompt mark.

jaesivsm/liquidprompt,pkkolos/liquidprompt,milouse/liquidprompt,laurentbardin/liquidprompt,nojhan/liquidprompt