Using custom format when outputting data to html to support column styles
#### Code Sample

```python
df = pd.DataFrame([{'Key': 'Blue', 'Value': 101.25}, {'Key': 'Green', 'Value': 99.12}])
df.to_html()
```
#### Problem description

The code above, `to_html` has no direct way of specifying column styles. When I dump the output, it produces the table below. 

<table border="1" class="dataframe">
<thead>
    <tr style="text-align: right;"><th></th><th>Key</th> <th>Value</th></tr>  </thead>
<tbody>
    <tr><th>0</th><td>Blue</td><td>101.25</td></tr>
    <tr><th>1</th><td>Green</td><td>99.12</td></tr>
</tbody>
</table>

I would like to pass in custom styles (which could be tags based on column index) for specific columns, such `Value` is right-aligned. `to_html` references `DataFrameFormatter` which reference `HTMLFormatter`. the `write_tr` method in `HTMLFormatter` supports `tags` which can be used to specify cell styles or `align` which can be used to specify row text alignment.

#### Expected Output
It would be nice to pass in align & tags values when calling `DataFrame.to_html`

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

<details>

pandas: 0.24.1
pytest: 4.0.2
pip: 19.0.1
setuptools: 40.7.3
Cython: None
numpy: 1.15.4
scipy: None
pyarrow: None
xarray: None
IPython: 7.2.0
sphinx: None
patsy: None
dateutil: 2.7.5
pytz: 2018.9
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: None
openpyxl: 2.5.14
xlrd: 1.2.0
xlwt: 1.3.0
xlsxwriter: 1.1.2
lxml.etree: None
bs4: None
html5lib: 1.0.1
sqlalchemy: 1.2.17
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
gcsfs: None

</details>
