autoindent: fix indentation when "keep extra spaces" is enabled
This changes the way that the "keep extra spaces" option affects keepIndent, which is called when an indentation script returns -1. Instead of adding all the indentation of the current line to that of the previous line, we only add the extra spaces that are not a multiple of the indentation width. This is more consistent with how the option is used everywhere else. In addition, the "keep extra spaces" option is temporarily disabled when re-indenting a block of code, which happens when pasting code or through Selection->Format Indentation. Since we're supposed to re-indent the code block from scratch, it makes no sense to keep extra spaces around.