Don't pipe input to subprocesses, since it breaks Windows

* New buffer-local var magit-run-input-file used for holding temp file names during async git call
* Delete these temp files for both sync and async calls
* Remove special handling for input in magit-run*
* Rename some arg names for clarity (s/input/file/g)
* Use new temp file instead of "-" in some git calls
Use undecided-unix as coding system for writing temp files

Otherwise git will think there is trailing whitespace on Windows (in the magit-apply-hunk-item case) and get confused.
s/make-variable-buffer-local/make-local-variable/g on non-top-level uses
magit-tests.el: Fix issue causing tests to fail with my changes

* Wait for async git process to complete before trying next test
* Kill current magit cilent buffer if one was created for a test, and the test passed; this prevents a
  ton of magit buffers from piling up after some interactive test runs

Conflicts:
	tests/magit-tests.el