CLN: raise the correct kind of exception
CLN/ENH: refactor and disallow certain types for period and datetime index joins
TST: add tests and fix up failing to match new behavior