Is there a maximum factor by which difficulty can change? I seem to recall, long ago, being told that difficulty couldn't change more than a certain amount at each retarget, but I can't seem to find what that factor is (or even confirmation that such a factor exists) no matter how hard I google. Does such a factor exist and if so what is its value?
The difficulty never changes by more than a factor of 4 (except for in a special case that only applies on testnet).

The code that enforces this is here.