Remove StringMixin from code base
I`m thinking about making a PR to remove ``StringMixin`` from the code base in order to make pandas use more standard string output methodology (putting the base string representations in the ``__repr__`` , as is standard in python3, instead of in  ``__str__``).

Any objections to this? This is backwards compatible for users of Pandas, but may be slightly backwards incompatible for subclasses of Pandas classes located in external packages, e.g. If a downstream package did this:

```python
>>> class MyFrame(pd.DataFrame):
...    def __str__(self):
...        return “abc”
```

the repr would output an unexpected string.

Would this e.g.  affect Geopandas, @jorisvandenbossche?