Bug fix---prevent signal from interrupting own signal handler.

Follow POSIX conventions here.
Support sigaction('info').

You can pass in the 'info' flag to signal.catch() and get additional
information:

	function handler(sig,info)
	  print(string.format("%s: cause %s",sig,info.code))
	  os.exit(1)
	end

	signal.catch('segv',handler,{ 'restart' , 'info' })