rpc_get_completions: Uniquify results.

When the Elisp part assumes pre-sorted results, company does not
make the results unique. Do it in Python.
rope: Catch errors from a codeassist call.

This can not use our generic call method, and we forgot to catch
errors here.
Portably uniquify results from rpc_get_completions.

Dictionary comprehensions do not work in Python 2.6. And in Python 3,
dict.values returns a view, not a list. Work around both.
elpy-nav-forward/backward-block: Stop at lower indentation.

Navigating by current indentation will now stop when point would
leave the current block scope.
elpy-rpc--open: Hide RPC buffers.

RPC buffers are not really useful for users to interact with, so Elpy
now hides them from the buffer list by default, using a buffer name
with a leading space.

(Thanks to Eric Larson for the idea.)

Fixes #371
Fix some flake8 errors.
Don't error on warnings in make python-test.

Rope causes a bunch of warnings. Meh.
Do not get (too) confused by a vanishing library root.

Catch an error from Rope about a missing resource, which can
happen when the library root which existed originally suddenly
vanishes.

Also, start the Python process to check for configuration with
a default-directory of / to avoid problems when the current
directory does not exist anymore.

Fixes #353.
Rope reproduction steps and error popup delay.

When Rope throws an exception, Elpy will now also provide
reproduction steps similar to Jedi. Fixes #280.

Additionally, Elpy now won't pop up error descriptions for every
error, as that can be distracting from code work. Instead, if errors
happen too quickly, Elpy will simply emit a short message.

This behavior can be customized with the elpy-rpc-error-timeout option.
Remove two tests that randomly break on Travis.