Do not try to complete Python in comments.

Auto-completion in comments does not make all that much sense,
and Rope will get seriously confused there, trying to complete
any Python symbol even in the middle of a string. Elpy now
does not even try to complete anything if we are inside a
comment.

Fixes #155
elpy-rpc-traceback: New command.

This command prints the last traceback in the backend to a new
buffer, for debugging purposes.

Fixes #171
Run the flymake check function from "/".

In some configurations, it is possible to break flake8 because
it will import from the current directory (specifically, when
PYTHONPATH contains the empty element/current directory). Running
flake8 from / ensures that there are no accidental imports happening.

Fixes #169
Ensure yas-snippet-dirs is a list before adding to it.

That variable is allowed to be a string, in which case it is
tretead as a directory by yasnippet. We now make sure that it
is turned into a list before we add to it.

Fixes #176
Remove before/after save RPC calls.

These were used by Rope, but it seems Rope can happily live without
them. Elpy hasn't been using them since 1.2, so we now removed them
completely.

See #148
New defcustom: elpy-show-installation-instructions

Prevents the *Elpy Installation* buffer from popping up.
Use line-number-at-pos instead of flymake-current-line-no ...

... since the latter has vanished as of

    commit 4cd39bde1061c55abb20a698d996637aaf705483
    Author: Leo Liu <sdl.web@gmail.com>
    Date:   2013-12-08 11:35:32 +0800

        Clean up flymake.el
Use evm in .travis.yml

The ppa for emacs-snapshot is not being updated anymore. Also, it
has a broken version of Emacs in it that does not work with cask.
And finally, it only had one version of Emacs 24.x anyhow.

So now we use evm to provision different versions of Emacs for
testing.

Snapshot versions of Emacs will have to be tested outside of
Travis.
Ensure that auto-complete documentation is not the empty string.

Auto-complete uses popup.el to display documentation, which apparently
can not deal with empty strings in this case. An empty string will
cause an error/loop, both getting Emacs to consume CPU as well as
not removing any empty lines at the end of the buffer added by popup.el
to display the help popup.

Elpy now ensures that this never returns the empty string.

Thanks to Matthias Dahl for his work in finding this bug (#183).

Fixes #182 and possibly also #154.
Start elpy-rpc process in the current buffer's context

If a user made process-environment buffer local and added environment
variables of his own to support his use-case, those changes would be
lost to the elpy-rpc process if it was started in the context of a
new buffer (like before).

Possible scenario: A dedicated virtualenv for all emacs related dev
packages (elpy, PyLint, ...) which is added via PYTHONPATH to each
opened Python buffer. In that buffer, exec-path and process-environment
are buffer local to isolate those changes and thus make it possible to
work on projects with different Python versions and/or virtualenvs.

NB: start-process always starts the process with the current buffer's
process-environment, even if a new destination buffer is given as an
argument.
Use pyvenv.el instead of virtualenv.el.

The virtualenv.el library has a few shortcomings, among them some
hackish intrusion in the general way that Emacs works, but also lack
of support for virtualenvwrapper's hooks, which are especially
important to set up environment variables for working in certain
projects.

Fixes #149
Catch a spurious IndexError from Rope

Rope will throw an IndexError when trying to find a completion
after from .. import foo. Elpy now catches this, at the danger
of catching a whole lot of other Rope bugs.

Fixes #186
Do not pass MSG argument to python-shell-send-string

The optional MSG argument was removed in current development
versions of Emacs. It's a bit annoying because we'd like to keep
showing messages in the older versions, but compatibility
means we can't really pass it in anymore.

Fixes #187