Fix Git's config set with values containing white spaces.

The Salt function 'git.config_set' and the state 'git.config' (which relies
on the former) don't escape the value to be set in the configuration file
passed by Salt. For example, this doesn't work:

  mylocalrepo:
    git.config:
      - name: user.name
      - value: "Jonathan Ballet"
      - repo: file://my/path/to/repo

This set the 'user.name' configuration value to "Jonathan" only.
(Additionally, the state discovers that the value set is not the one
specified, and keeps trying to set the right value, which ends up with lot
of "name = Jonathan" into the "[user]" section of Git's config file.)

This commit fixes the problem and adds some unit tests to verify it's
working properly.
Add future's absolute import to fix importation of git in tests

Tests in pillar.py are importing the "git" module, which is supposed to
be "GitPython", bt since Python 2.x doesn't use absolute import by
default, it imports the "git" submodule, which defines the tests for the
Git module of Salt, instead.
Merge pull request #18221 from multani/fix/git-config-set-shell-escape

Fix Git's config set with values containing white spaces.