Name decl errors

When we have name-related errors for missing types/values we should now get that as part of the error message again.

I'm not 100% convinced this implementation is right, but the tests all still pass and `purescript-everything` compiles with no errors, so I guess it is ok still. If anything, we might just miss the definition name from the error message in some edge cases still, although I tried to cover everything I could think of.