Fix newline substitution.

Problem  : Command `s/\n//` is being translated into a call to do_join
           with a count of 1. But do_join asserts its precondition count
           >= 2, which is causing the program to abort.
Note     : This in fact revealed a bigger problem: all generated join
           commands line count were wrong (lacking 1). See
           https://code.google.com/p/vim/issues/detail?id=287#makechanges
           for details.
Solution : Make generated join commands include lines in range + 1, with
           a minimum of 2. For the edge case of one-line-range in the
           last line of a file, which would be a no-op, just don't
           generate join.