Run git ls-remote in a temp directory instead of project directory

For now it is possible that projects `.git/config` contains git url rewrites (`insteadOf`) so they will affect `bower`.

This proposes that run of `git ls-remote` command would be run in a separate current directory (`osenv.tmpdir()`) so it is not affected by these configs.

In our case it is fixes quite rare bugs with TeamCity (with enabled `teamcity.git.use.local.mirrors=true` option) and projects that depend on itself (directly or indirectly) and are installed by branches refs.

/cc @SevInf