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]
