Support Pry.editor proc/Pry::Editor.invoke_editor

This uses `Pry::Editor.invoke_editor` to edit the file if available,
otherwise it falls back to `Pry.editor` proc probing and at last uses
editor string for the system call. This fixes issue #4.