CLN: Replace bare exceptions with more descriptive ones
This takes care of the low-hanging fruit (really obvious Exception changes), there are still a bunch more to change, but I thought I would split it up into parts and deal with external exceptions before messing with anything that might potentially be raised internally. [I rebased this slightly to remove a few comments - but it did pass previously so it should be fine]

here's the hard part
need to also change the corresponding test (if there is one)
to the new exception

you can easily do this by temporarily not raising (comment it out)
then the test should break and u can fix it

if it doesn't break then we r not testing it

tests are almost certainly for bare Exception
 @jreback okay, will do :)
 @jreback I've been writing out test cases for all of this, but it's involving some minor changes all around too. Would it be okay if I split this up into multiple PRs? (for example, right now I have test cases edited for stats, tools, tseries and sparse, could I submit those as PR and then continue working?)
 I'm just concerned that it's going to get more and more difficult to merge the more files that are changed.
 yes smaller PRs prob easier in this case
