Send a trigger pulse to a GPIO.  The GPIO is set to
        level for pulse_len microseconds and then reset to not level.
        user_gpio:= 0-31
        pulse_len:= 1-100
            level:= 0-1
        ...
        pi.gpio_trigger(23, 10, 1)
        ...

def gpio_trigger(self, user_gpio, pulse_len=10, level=1):
        """
        Send a trigger pulse to a GPIO.  The GPIO is set to
        level for pulse_len microseconds and then reset to not level.
        user_gpio:= 0-31
        pulse_len:= 1-100
            level:= 0-1
        ...
        pi.gpio_trigger(23, 10, 1)
        ...
        """
        # pigpio message format

        # I p1 user_gpio
        # I p2 pulse_len
        # I p3 4
        ## extension ##
        # I level
        extents = [struct.pack("I", level)]
        res = yield from self._pigpio_aio_command_ext(_PI_CMD_TRIG, user_gpio,
                                                      pulse_len, 4, extents)
        return _u2i(res)