EHN encoding parameter for to_latex
closes #7061 

I'm working on solving issue #7061: currently, with Python 2 it is not possible to use `.to_latex()` when the dataframe contains utf-8 strings. This PR adds an `encoding` parameter to make it possible.

The work is not completely done though, and I'm making this PR to start a discussion here. In its current state, the PR quickly fixes the issue and provides tests, so it is kind of a minimal PR.

@jreback in the discussion on issue #7061, you made the following suggestion:

> you _may_ want to add a `LatexFormatter` (as a sub-class of `DataFrameFormatter`) as this will allow some re-factoring to be internally done later on. 

I would be glad to work in that direction, but I'm a bit confused by the current organization of the code. This `LatexFormatter` would seem to me to be similar to `HTMLFormatter`, which inherits from `TableFormatter` (exactly as `DataFrameFormatter`). In that case, `DataFrameFormatter` would use `LatexFormatter` for `.to_latex()` exactly as it uses `HTMLFormatter` for `.to_html()`.  Is that what you had in mind?
