Handle non-utf8 characters in docstring correctly.

When returning the pydoc documentation for a module, Elpy now
returns unicode strings so that json.dumps won't choke on the result.

This was breaking for example for the tarfile module's docstring,
which contains latin-1 instead of utf-8.

Fixes #270.
Handle a specific AttributeError in Jedi

This is a workaround for davidhalter/jedi#431, which should be
fixed in the next Jedi release.

Fixes #272.
Use str.decode, not unicode(), to decode byte strings.
Set company-idle-delay to 0.

This is the new way of specifying no delay in newer company versions.
Bump the dependency to 0.8.2 to reflect this.
Trim overly long meta information from completions.

Meta information is displayed in the minibuffer, which is highly
annoying if the meta information is overly long. Elpy now trims
overly long meta information to at most two lines.

Fixes #269.
Support newest python.el for elpy-use-ipython.

Emacs 24.4 will ship with a newer python.el which can correctly
detect and interact with IPython. Support this new mode when available
and don't set all the deprecated values for it.
Handle bad directories in sys.path.

Python 2.7 fixed a bug in 2.6 where directories in sys.path without
read permission would cause spurious exceptions. Elpy now deals with
these errors. At least as long as we officially support 2.6.

Fixes #275.
Adjust use-cpython to be python.el-specific, too.

The new way python.el works does make the old way for use-cpython
incompatible, so we now handle it specifically as well. This means
we only have special handling for Emacs 24.3. Yay.
Use twine to upload to pypi.
Upgrade dependency on jedi 0.8.1
Update dependencies and clean up requirements for the release.
Bump version: 1.4.50 → 1.5.0
Update NEWS.rst to 1.5.0.
docs: Minor typo fix

* docs/editing.rst: s/occurence/occurrence
Merge pull request #299 from theanalyst/fix/typo

docs: Minor typo fix
Use multiline strings in test code
Add "rename in superclass" and "replace in strings" option to rename

Rope supports renaming methods and members in the complete hierarchy.

For example, in the following

  class A(object):
    def foo(self): pass

  class A2(A):
    def foo(self): pass

We want to be able to rename A2's foo as well as A's foo at the same
time.

Rope supports this as "in_hierarchy" so add it to the rename dialog.

Also, rope allows to change occurences in strings and docstrings, let
the user choose whether he wants that as well.
Fix some PEP8 warnings in the refactoring change.
Add and use assertSourceEqual in refactor test cases.
Use print function, not statement, for Python 3 compatibility.