Pyrun can operate on a range, and does not need to save

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 incorporated, but I'm happy to rebase it if you want.

Lawrence