CLN: Replace bare exceptions with more descriptive ones
I'm moving this to an issue so it's easier to track and I can split into separate, smaller, pull requests. (previously was #3924).

For right now, the goal is to take care of the low-hanging fruit (the really obvious items that should be TypeError, ValueError, etc.) and then potentially take on more of the code base later.

Packages/Files where exceptions have been changed (will be checked off once test cases are edited for them)
- [x] `merge`
- [x] `stats/common`
- [x] `tools/tile`
- [x] `core/common`
- [x] `core/format`
- [x] `core/frame`
- [x] `pandas/sparse`
- [x] `pandas/tseries`
- [ ] `core/internals`
- [x] `core/index`
- [ ] `core/panel`
- [ ] `core/series`
- [ ] `core/panelnd`
- [ ] `rpy/common`
- [x] `io/excel`

More to come...
