Promise: New data structure.
Rework elpy-rpc to use the new promise interface.
Backend support for passing source as files.
Emacs Lisp support for sending large buffers as files.

This, together with the last two commits, implements #51.