DOC: update the `to_pickle` & `read_pickle` docstring
Checklist for the pandas documentation sprint (ignore this if you are doing
an unrelated PR):

- [x] PR title is "DOC: update the <your-function-or-method> docstring"
- [x] The validation script passes: `scripts/validate_docstrings.py <your-function-or-method>`
- [x] The PEP8 style check passes: `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] The html version looks good: `python doc/make.py --single <your-function-or-method>`
- [x] It has been proofread on language by another sprint participant

Please include the output of the validation script below between the "```" ticks:

```
################################################################################
#################### Docstring (pandas.DataFrame.to_pickle) ####################
################################################################################

Pickle (serialize) object to input file path.

Parameters
----------
path : str
    File path where the pickled object will be stored.
compression : {'infer', 'gzip', 'bz2', 'xz', None}, default 'infer'
    A string representing the compression to use in the output file. By
    default, infers from the file extension in specified path.

    .. versionadded:: 0.20.0
protocol : int
    Int which indicates which protocol should be used by the pickler,
    default HIGHEST_PROTOCOL (see [1], paragraph 12.1.2). The possible
    values for this parameter depend on the version of Python. For
    Python 2.x, possible values are 0, 1, 2. For Python>=3.0, 3 is a
    valid value. For Python >= 3.4, 4 is a valid value. A negative
    value for the protocol parameter is equivalent to setting its value
    to HIGHEST_PROTOCOL.

    .. [1] https://docs.python.org/3/library/pickle.html
    .. versionadded:: 0.21.0

See Also
--------
read_pickle : Load pickled pandas object (or any object) from file.
DataFrame.to_hdf : Write the contained data to an HDF5 file using
    HDFStore.
DataFrame.to_sql : Write records stored in a DataFrame to a SQL
    database.
DataFrame.to_parquet : Write a DataFrame to the binary parquet format.

Examples
--------
>>> original_df = pd.DataFrame({"foo": range(5), "bar": range(5, 10)})
>>> original_df
   foo  bar
0    0    5
1    1    6
2    2    7
3    3    8
4    4    9
>>> original_df.to_pickle("./dummy.pkl")

>>> unpickled_df = pd.read_pickle("./dummy.pkl")
>>> unpickled_df
   foo  bar
0    0    5
1    1    6
2    2    7
3    3    8
4    4    9

>>> import os
>>> os.remove("./dummy.pkl")

################################################################################
################################## Validation ##################################
################################################################################

Errors found:
	No extended summary found
	Errors in parameters section
		Parameter "compression" description should finish with "."
		Parameter "protocol" description should finish with "."
	No returns section found
```

description already finishes with "."
.. versionadded:: tag should not end with "."


# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/20253?src=pr&el=h1) Report
> :exclamation: No coverage uploaded for pull request base (`master@fb556ed`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/20253/graphs/tree.svg?height=150&width=650&token=eZ4WkYLtcO&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/20253?src=pr&el=tree)

```diff
@@            Coverage Diff            @@
##             master   #20253   +/-   ##
=========================================
  Coverage          ?   91.76%           
=========================================
  Files             ?      150           
  Lines             ?    49148           
  Branches          ?        0           
=========================================
  Hits              ?    45099           
  Misses            ?     4049           
  Partials          ?        0
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.14% <100%> (?)` | |
| #single | `41.9% <100%> (?)` | |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/20253?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/generic.py](https://codecov.io/gh/pandas-dev/pandas/pull/20253/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ2VuZXJpYy5weQ==) | `95.85% <100%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/20253?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/20253?src=pr&el=footer). Last update [fb556ed...26b3e2e](https://codecov.io/gh/pandas-dev/pandas/pull/20253?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
 @jorisvandenbossche thanks for the comments. applied changes including reverting to generic docstring. agree that for the benefits, not necessary to use _shared_docs. lgtm. @jorisvandenbossche @datapythonista  this lgtm. do we use Reference in other doc-strings? @minggli Thanks a lot for the PR!