`py-execute-buffer' overrides window-configuration, lp:1239498, fixed
NEWS updated
Ipython TAB completion cursor stays in place, lp:1244998

`TAB' will indent, with `C-q TAB' inserts a literal TAB, `M-x TAB' completes

In py-shell-map:

        (define-key map (kbd "TAB") 'py-indent-line)
        (define-key map [(meta tab)] 'py-shell-complete)
Speed: `py-end-of-statement', reduce number of function-calls needed
`py-compute-indentation' honor repeat

shell-complete minor fixes
`py-end-of-statement': reduce number of recursive calls to expect

Replaced calls to `end-of-line', instead employed forms like

(and (< 0 (abs (skip-chars-forward "^;#" (line-end-position))))
             (skip-chars-backward " \t" (line-beginning-position)))
`py-end-base': py-end-of-def and related faster

If `py-close-provides-newline' is `t', the default,
commands reaching the end will take profit of empty
lines