Rope backend now uses a central call interface.

Most calls to Rope follow similar call signatures and need to catch
the same exceptions. Factor out all of this into a common function
similar to the Jedi backend.
Show the current flymake error in the echo area.

When the current line is highlighted by flymake, Elpy will now
display the flymake error for that line instead of the function
call signature.

Fixes #232.
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.
New movement commands.

Control with the cursor keys now move point a bit more intuitively
and helpful around.

Left and right movement will move by word as usual in Emacs, but
will treat indentation levels as words, so you can skip between
words inside the normal line or between indentation levels before
the actual code line.

Up and down will now go to the previous/next code block indented
roughly to where point is currently. This also allows to jump between
class and function definitions more easily.

This fixes #281, #300 and #303.
Fix for open-and-indent-line test.

This regularly fails for random reasons.
elpy-config now points out outdated Python packages.

Outdated packages (currently only Rope and Jedi) are shown with
their newer versions and the option to upgrade them.

Fixes #297.
Ignore syntax error bug in Jedi.

This fixes #314.
Add elpy-version command again.

Fixes #322.
Ignore import errors from Jedi.

Fixes #337.
elpy-config warns about ~/.local/bin not in PATH.

The directory is used by programs installed by pip install --user,
which can cause confusion if they are not found even when they are
installed.

Fixes #324.
Sort completion results.

Elpy now sorts completion results in a more or less intuitive manner.
Normal, public symbols come first, followed by dunder symbols like
__init__, and finally private, single-underscore symbols. Additionally,
the completion results are case-insensitive.

Fixes #321.
elpy-config: Remove superfluous duplicate newline.
Handle bug in Jedi about an unbound local variable.

Fixes #364.