Add support for -i/--interactive to git-clean

Show what would be done and the user must confirm before actually
cleaning. In the confirmation dialog, the user has three choice:

 * yes: Start to do cleaning.
 * no:  Do not clean anything.
 * edit (default): Enter edit mode.

When the user choose the edit mode, the user can input a space
separated patterns (the same syntax as gitignore), and each clean
candidate that matches with one of the patterns will be excluded
from cleaning. When the user feels it's OK, press ENTER to start
cleaning.

When in edit mode, If the user wants to cancel the whole cleaning,
simply input ctrl-c to abort the cleaning.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Suggested-by: Junio C Hamano <gitster@pobox.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>