ENH: allow axis argument to append / move append code to generic.py (GH8295)

closes #8295

- [x] Extract `append` method in `frame.py` into `generic.py` 
  - I left the original code just commented.
- [x] Extract test cases in `test_frame.py` into `test_generic.py` 
- [x] Extract test cases in `test_series.py` into `test_generic.py`
- [x] Specific test case for testing `axis=1` in `test_generic.py`
- [x] Generic method `append` in `generic.py`
- [x] `NotImeplementedError` for `Panel`
- [ ] Docstring for generic `append`
- [ ] Release note
- [ ] Documentation
- [ ] CI pass

One more thing, could `Series.append` use `axis=1` as well ?
```python
pd.Series([1,2,3]).append(pd.Series(['a','b','c']), axis=1)

   0  1
0  1  a
1  2  b
2  3  c

# just like below
# pd.concat((pd.Series([1,2,3]), pd.Series(['a','b','c'])), axis=1)
```

It would be awesome if I could get your guidance to close this issue under the project's convention. Thank you ! 
Is their a test for this?