fixed header=list (to create a MultiIndex) for read_excel
closes #4679 

This is a very simple fix to allow passing a list go the header argument of read_excel so that it creates a MultiIndex for columns. Given what is said in issue #4679, I am not really sure it is supposed to work, but with this fix, it works for my files. One thing discussed in issue #4679, which I did not do anything about (and thus probably still does not work) is if the header cells are merged, but my opinion is that this should be a separate issue, as it is already useful to be able to read files with the header duplicated (the files I receive are usually like this).  If this PR is accepted (at least in spirit), the docstring for read_excel should probably be updated to reflect the "new" capability and the changelog updated, but I wanted to check first what you think.

As a side note, I am not entirely sure that _trim_excel_header is a good thing to do anyway, but that is another debate entirely.

needs tests
 @gdementen can you rebase this. What are all of the changes in index.pyx for?
 First, sorry for letting this rot for so long.

I have since then realized that for my use cases, the code this PR changes (_trim_excel_header) should be removed altogether rather than changed. I have postponed proposing to do that because this code was probably put there for a reason and thus removing it will break backward compatibility for someone somewhere even though this seems like a more sensible way to do things (it makes the behavior the same than for csv files). If I knew what the use case this code is meant to handle, I would probably add an option for this, but I don't.

The hashtable.pyx changes are completely unrelated. I simply forgot to create a branch for my changes before sending the pull request... I will close this PR and create two separate ones.
