[SPARK-3861][SQL] Avoid rebuilding hash tables for broadcast joins on each partition

This isn't really a normal hashmap its for joins, and an empty compact buffer seems like a pretty clear way to indicate no matches found.  Then you don't have to special case null on the other side.  You just join with whatever rows are returned.

Though I guess that doesn't work great with your getValue idea below....