rework the events and gvalues api's to be more powerful with less code. add signal_emit.