[FR] Add keyword or option to print column names at bottom of output, not just top.

```python
import numpy as np
import pandas as pd
pd.DataFrame(np.random.random((4,3)), columns=['a','b','c'])
```

Generates 

```
|   |        a |         b |        c |
|---+----------+-----------+----------|
| 0 |  0.87267 |  0.429153 | 0.545497 |
| 1 | 0.596757 |  0.811766 | 0.797137 |
| 2 | 0.175432 | 0.0254871 | 0.560906 |
| 3 | 0.426507 |   0.39993 | 0.418244 |
```

#### Problem description

Org-mode or Jupyter Notebooks often include Pandas table output. Pandas does try to intelligently limit printed output, but there are times when it is useful to have tables larger than can fit on screen. In this case, having column names repeated at the bottom (or even every `repeat` row) would improve readability and usability.

#### Expected Output

If set to print at bottom, it would be nice to have the option to generate this:

```
|   |        a |         b |        c |
|---+----------+-----------+----------|
| 0 |  0.87267 |  0.429153 | 0.545497 |
| 1 | 0.596757 |  0.811766 | 0.797137 |
| 2 | 0.175432 | 0.0254871 | 0.560906 |
| 3 | 0.426507 |   0.39993 | 0.418244 |
|---+----------+-----------+----------|
|   |        a |         b |        c |
```

If set to print headers every 2nd row, then it might look like this:

```
|   |        a |         b |        c |
|---+----------+-----------+----------|
| 0 |  0.87267 |  0.429153 | 0.545497 |
| 1 | 0.596757 |  0.811766 | 0.797137 |
|---+----------+-----------+----------|
|   |        a |         b |        c |
|---+----------+-----------+----------|
| 2 | 0.175432 | 0.0254871 | 0.560906 |
| 3 | 0.426507 |   0.39993 | 0.418244 |
|---+----------+-----------+----------|
|   |        a |         b |        c |
```
