ENH: Make RangeIndex.append() return RangeIndex when possible
State: closed

 - [x] closes #16212
 - [x] tests added / passed
 - [x] passes ``git diff master --name-only -- '*.py' | flake8 --diff``
 - [x] whatsnew entry

This is analogous to what is already done for ``RangeIndex.union()``, but there doesn't seem to be much scope for code reuse (what could be, in principle, reused in ``.append`` of all ``Index`` subclasses is the initial casting to list/name handling, I could do in a separate PR).

Labels:
name: Enhancement
name: Reshaping
description: Concat, Merge/Join, Stack/Unstack, Explode

Comments:
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=h1) Report
> Merging [#16213](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/f1549668c84b481a67547bb46261d1394c8dd3e7?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/16213/graphs/tree.svg?height=150&width=650&src=pr&token=eZ4WkYLtcO)](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #16213      +/-   ##
==========================================
- Coverage   90.89%   90.87%   -0.02%     
==========================================
  Files         162      162              
  Lines       50884    50915      +31     
==========================================
+ Hits        46250    46269      +19     
- Misses       4634     4646      +12
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `88.66% <100%> (-0.02%)` | :arrow_down: |
| #single | `40.32% <58.06%> (+0.01%)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/indexes/range.py](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhlcy9yYW5nZS5weQ==) | `92.81% <100%> (+0.7%)` | :arrow_up: |
| [pandas/plotting/\_converter.py](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree#diff-cGFuZGFzL3Bsb3R0aW5nL19jb252ZXJ0ZXIucHk=) | `63.54% <0%> (-1.82%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=footer). Last update [f154966...a77ee00](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=h1) Report
> Merging [#16213](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/94ef7b6a2e1e9fd266bab6f22f8573d421d1745f?src=pr&el=desc) will **decrease** coverage by `<.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/16213/graphs/tree.svg?src=pr&token=eZ4WkYLtcO&height=150&width=650)](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #16213      +/-   ##
==========================================
- Coverage   90.35%   90.34%   -0.01%     
==========================================
  Files         161      161              
  Lines       50866    50897      +31     
==========================================
+ Hits        45962    45985      +23     
- Misses       4904     4912       +8
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `88.13% <100%> (ø)` | :arrow_up: |
| #single | `40.19% <58.06%> (-0.1%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/indexes/range.py](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhlcy9yYW5nZS5weQ==) | `92.81% <100%> (+0.7%)` | :arrow_up: |
| [pandas/io/gbq.py](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree#diff-cGFuZGFzL2lvL2dicS5weQ==) | `25% <0%> (-58.34%)` | :arrow_down: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.59% <0%> (-0.1%)` | :arrow_down: |
| [pandas/core/common.py](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvY29tbW9uLnB5) | `91.03% <0%> (+0.34%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=footer). Last update [94ef7b6...89da68a](https://codecov.io/gh/pandas-dev/pandas/pull/16213?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

The last push just makes few lines of the tests nicer
@jreback as I had anticipated, #16236 involves some non-trivial discussion (and additional work which I won't be able to do in the next days). For the moment, I invite you to reconsider this PR, which should be straightforward: after, it will be easier to focus on that pure refactoring PR.
ok, fine to merge. ping on green.
ping
thanks!