Timestamp.to_period() is off-by-one for weekly frequencies
#### Code Sample

```python
import datetime as dt
import pandas as pd

pd.to_datetime(dt.datetime(2018,1,2)).to_period('W-MON')
# Period('2018-01-02/2018-01-08', 'W-MON')

dt.datetime(2018,1,2).strftime('%a')
# 'Tue'
```

#### Problem description

I expect `W-MON` to produce a `Period` that starts on Monday. But in my example, the beginning of the `Period` is `2018-01-02`, which is a Tuesday.

Note that `pandas.date_range()` does produce the expected output:

```
pd.date_range(start=dt.datetime(2017,12,1), end=dt.datetime(2018,2,1), freq='W-MON')
# DatetimeIndex(['2017-12-04', '2017-12-11', '2017-12-18', '2017-12-25',
#                '2018-01-01', '2018-01-08', '2018-01-15', '2018-01-22',
#                '2018-01-29'],
#               dtype='datetime64[ns]', freq='W-MON')
```

#### Expected Output

`Period('2018-01-01/2018-01-07', 'W-MON')`

#### Output of ``pd.show_versions()``

<details>
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.14.final.0
python-bits: 64
OS: Darwin
OS-release: 17.4.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LOCALE: None.None

pandas: 0.22.0
pytest: None
pip: 9.0.1
setuptools: 39.0.1
Cython: 0.26
numpy: 1.14.2
scipy: 0.19.1
pyarrow: None
xarray: None
IPython: 5.5.0
sphinx: None
patsy: 0.4.1
dateutil: 2.7.2
pytz: 2018.4
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 2.1.1
openpyxl: None
xlrd: None
xlwt: 1.3.0
xlsxwriter: None
lxml: None
bs4: None
html5lib: 0.9999999
sqlalchemy: 1.2.0
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
</details>
