elpy-project-root: Use library root only.

Previously, the project root code used a lot of heuristics to find
the root of the current repository. That is a good intention, but
it fails regularly, finding false project roots (the home directory,
for example), which in turn causes all sorts of issues with the auto-
completion.

The new code simply uses the current directory if there is no
__init__.py, and if there is, traces it up to the directory above
the last __init__.py.

Fixes #99

This also prevents returning of the home directory, should the
user open a file there.

Fixes #72
elpy-enable: Check that find-lisp-object-file-name returns non-nil.

This can return nil if python-mode is autoloaded and not run yet. I
have no idea when that can happen, but it did for the user of #105.

Fixes #105.
test-elpy-project-find-root: Use new project root semantics.
elpy-rpc-ensure-open: Raise an error if elpy-rpc-backend is not a string.

Or nil. This caused some confusion for a number of users when they set
the variable to a symbol.

elpy-rpc-backend: Adjust docstring to say this should be a string.
Inferior Python Shell: Do not prompt for start and switch when sending.

With this change, elpy will start the inferior Python process without
prompting for a command and whether to make it dedicated. If you need
this functionality, you can use M-x run-python directly.

In elpy, C-c C-c will now send the current region or buffer to the
global inferior process and switch to it, starting a new process
if necessary. C-c C-z will just switch to the inferior process,
creating it if necessary.

Fixes #68
Fixes #85