pygi_error_marshal_to_py: Fix error return handling. Fixes #315
It returned NULL in case no error was set or if creating the error result failed and this wasn't checked by the callers.
Change it to return Py_None in case no error was set and NULL in case of an error. In pygi_error_check() we can't really forward the error, so just print it and raise RuntimeError instead.