ENH: Enable multiple spaces in printing DF in IPython (through HTML)
When displaying a DataFrame in IPython, multiple spaces (as well as leading/trailing spaces) get removed.

However, sometimes it is necessary though to show the data exactly _as is_. Cleaning up the strings like that is not a terrible default, but the user should have the option to display their data without mutation.

I posed this issue in ipython/ipython#11022, but there, @takluyver said:
> If there's a problem with how pandas dataframes display, you probably need to open an issue on pandas - the package generates the HTML, IPython just passes it on to the browser.

With this issue, I'm trying to follow up on that. As far as I can see, it's not just a pandas issue (which is why I tagged @takluyver). pandas strips the outer spaces, and IPython strips the inner ones.
```
df = pd.DataFrame({'col1': [' a ', 'b    b'], 'col2': [' c d ', 'e f   f   f   f']})
df
```
![1](https://user-images.githubusercontent.com/33685575/41929520-994ba2f6-7978-11e8-86ba-37bfd573ea97.png)

In string form, all spaces are there:
```
print(df)
#      col1             col2
# 0  a    a             c d 
# 1      b   e f   f   f   f
```
In HTML form, the inner spaces are still there; outer spaces have been stripped:
```
print(df.to_html())
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>col1</th>
      <th>col2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>a    a</td>
      <td>c d</td>
    </tr>
    <tr>
      <th>1</th>
      <td>b</td>
      <td>e f   f   f   f</td>
    </tr>
  </tbody>
</table>
```

Finally, quotes do not "escape" the string in some way - ipython continues stripping inner spaces:
```
df.apply(lambda x: x.apply(lambda y: f"'{y}'"), axis=1)
```
![2](https://user-images.githubusercontent.com/33685575/41929532-a0d46d3c-7978-11e8-99ef-5a7a1b892665.png)

As a possible solution, @rsclafani came up with the following in the ipython issue:
```
from IPython.core.display import display, HTML
display(HTML("<style>.rendered_html td { white-space: pre; }</style>"))
```
Maybe this could be wrapped in a kwarg `raw=True|False` in either pandas/ipython?