Edit: handle blanks in filenames correctly

Also, move path escaping to `Editor` class. The test is currently
failing (looks like a bug in `Editor`).
Only shellword escape filenames in system calls on linux
Remove needless old_editor restoration

Unfortunately nested assignments to @old_editor meant that the
original @old_editor was permanently lost. This caused sporadic
failures of spec/editor_spec.rb which was relying on Pry.config.editor
containing a string.
Fix indentation (HARDER)
Use proper temp directories for each OS

Also, there was a failing test on Windows ("should shell-escape files").
You will see it if you're running tests on Windows. Make it conditional.
Fix errors in tests on Windows

Some tests are still failing, though. This commit fixes wrong usage of
temporary paths on Windows. Please, note: the `edit` command is working
well; the issue is in poor tests.

Prettify some ugly code in `spec/editor_spec.rb`.
Remove redundant call to Shellwords.escape

The "edit" command already intelligently escapes arguments, if need.
This commit also fixes four failing tests on Windows.
Fix errors on Rubinius and JRuby

These implementations have slightly different APIs for getting your
temp directory path.
play specs: rewrite -i spec to use redirect_pry_io

This is because pry_tester doesn't work when the eval_string is mutated by a command