set_defaults does not work for more than one kwarg

We used to just pick up the first one and break out of
the loop. Removing the break statement is enough to get
all kwargs to be picked up. Added a test case

Fixes LP# 1160922

Change-Id: I966360fb5af30bc04e9f197c4b6de507636fa25d
(cherry picked from commit 921fd433fb105778610191d442ce490e82aff5a5)
isdir('.git') is never correct.

this doesn't solve the breakage when setup.py isn't in the cwd, but that
can wait.