ENH: enable Series.info()
- [ ] closes #5167
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

I took over https://github.com/pandas-dev/pandas/pull/31796 from @MarcoGorelli.
In this PR I took the tests and the docstring from https://github.com/pandas-dev/pandas/pull/31796, refactored tests (separated into dataframe and series-related only test classes).
Then on top of the recent changes (https://github.com/pandas-dev/pandas/pull/36752) I implemented series info.

New classes:
 - ``SeriesInfo`` (store data, which will be used in the outputs)
 - ``SeriesInfoPrinter`` (basically creator of the appropriate table builder)
 - ``SeriesTableBuilder`` (both Verbose and NonVerbose)
 - ``TableBuilderVerboseMixin`` (shared functionality for verbose info builders of both dataframe and series)

It seems to me that tests are not sufficient enough.
In particular, it seems that empty series info should be covered.
Currently there is a special empty dataframe info, but for series info there is just a generic verbose info with zero items.
If there is a need for a dedicated empty series info, then I would need to add method ``_fill_empty_info`` into ``SeriesTableBuilder``.

Static typing makes code quite verbose. In some cases we have the very same methods/properties, but with different type annotations to satisfy type checking (methods are small, but anyway). If somebody can suggest me a better way to handle it, then that would be great.