eval.vim: eval sel or file in external interpreter.

This is a generic solution to evaluate the current line, selection, region,
file, etc. in an external interpreter. filetypes must define b:evalfile and
optionally b:evalsel. For example, in the case of ipython:

let b:evalfile = "%run {FILE}"
let b:evalsel = "%paste"

Oneliners will be directly copy&pasted. The current file will always use
b:evalfile. Finally, selections with more than one line will use b:evalsel if
available or fallback to b:evalfile otherwise. In this last case vim will copy
the selection to a temporary file.