Fix error message when no error is caught
Fix error message when no error is caught

When has_error() fails, the error message is misleading, implying that
an error was thrown, but did not match what was expected, yet 'Caught'
and 'Expected' both match each other.

The following failure:

	assert.has_error(function() end)

produces the following error message:

	Expected a different error.
	Caught:
	(nil)
	Expected:
	(nil)

Update the error message to more accurately describe the error, showing:

	Expected a different error.
	Caught:
	(no error)
	Expected:
	(error)

This way, it is a bit clearer that no error was thrown/caught, while an
error was expected. If an expected error message is provided, that error
message will be displayed instead of '(error)'. If the function being
tested calls error(), with no arguments, the caught message will display
'(nil)' instead of '(no error)', since 'nil' is a valid error object.

o-lim/luassert,mpeterv/luassert,tst2005/lua-luassert,ZyX-I/luassert