Conform Series.to_csv to DataFrame.to_csv
(**EDIT**: Most of this comment is related to an old attempt. See [this comment](https://github.com/pandas-dev/pandas/pull/19745#issuecomment-404944973) and below for the content of the current  PR)

I tried my best to keep everything backwards compatible. A simpler solution
would have been simply

```python
def to_csv(self, path_or_buf=None, *args, **kwargs):
    """
    Write Series to a comma-separated values (csv) file

    Parameters
    ----------
    path_or_buf : string or file handle, default None
        File path or object, if None is provided the result is returned as
        a string.
    args
        Positional arguments passed to :func:`pandas.DataFrame.to_csv`
    kwargs
        Keyword arguments passed to :func:`pandas.DataFrame.to_csv`

    Returns
    -------
    None or string
        If `path_or_buf` is None, returns the result as a string, otherwise
        returns None.

    Notes
    -----
    Constructs a DataFrame using :func:`~pandas.Series.to_frame`, then calls
    the method :func:`pandas.DataFrame.to_csv` on that DataFrame.
    """

    df = self.to_frame()
    # result is a string if path_or_buf is None, otherwise None
    result = df.to_csv(path_or_buf, *args, **kwargs)
    return result
```

Unfortunately, such a solution breaks backwards compatibility for the following
reasons:

-   If given as keyword arguments, `path_or_buf` of `DataFrame.to_csv`
    corresponds to the differently named argument `path` of `Series.to_csv`.
-   The ordering of positional arguments for `DataFrame.to_csv` does not agree
    fully with the ordering of positional arguments for `Series.to_csv`
-   The default value of `header` is True for `DataFrame.to_csv` but False for
    `Series.to_csv`

Maybe this is something that could be implemented in the long run?

- [x] closes #19715 
- [ ] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry