Fixed #23556 -- Raise a more meaningful error message when migrations refer to an unavailable node

https://code.djangoproject.com/ticket/23556
I think for the benefit of Python 3 users at least we should set `__cause__` on this new exception to the original `KeyError`.