Pyrun can operate on range, no need to save file

This patch allows Pyrun to operate on a range of lines, eg :4,6Pyrun. It also avoids the need for the buffer to be saved before Pyrun can operate. At present, this is patch assumes that my earlier pull request is not already incorporated, but I'm happy to rebase it if you want.

Lawrence