Use XGetErrorText() instead of our own table

This fixes segfaults when the error code is not in the table.

Maybe I'm missing something, because the errors from X don't match up with those from the table...