Multiedit now works correctly in buffers without files.

The backend can return nil/None/null as a file name, which is now
interpreted as referring to the current file.

Fixes #305.
Rope will not error when the project root is missing.

It was possible, especially in tramp buffers, for Elpy to initialize
Rope with an inexisting project root. This would make Rope throw
an error. We now initialize Rope with the empty string as the project
root.

I'm not sure if the empty string is the best option, but Rope does
not like None, and at this point, we have no better option, really.

Fixes #319.
Include the full interpreter path in RPC buffer names.

The interpreter name is now expanded, to take care of different
PATH values on where python is found. The interpreter name in
virtualenvs is always "python", and needs the full path to be
a qualified name.

Fixes #341.
Catch a SyntaxError from Jedi.

This is a workaround for a bug in Jedi.

Fixes #344.
Ignore attribute errors from Rope.

These can happen using Rope 0.9.4 in rope_py3k with Python 3.

Fixes #347.
Do not break for Unicode output to the Jedi debug function.

This function can receive unicode strings at times, make sure to
decode those correctly.

Fixes #358.
Catch an encoding error from Jedi.

This can happen for unicode text that is emitted as debug messages.

Fixes #358.
Do not fail with invalid escape sequences.

Jedi can get confused with invalid escape sequences. Elpy will
now ignore those errors.

Fixes #360.