IIO trigger drivers.

Many triggers are provided by hardware that will also be registered as
an IIO device.  Whilst this can create device specific complexities
such triggers are registered with the core in the same way as
stand-alone triggers.

struct iio_trig *trig = iio_trigger_alloc("<trigger format string>", ...);

allocates a trigger structure.  The key elements to then fill in within
a driver are:

trig->owner
	Typically set to THIS_MODULE. Used to ensure correct
	ownership of core allocated resources.

trig->set_trigger_state:
	Function that enables / disables the underlying source of the trigger.

There is also a
trig->alloc_list which is useful for drivers that allocate multiple
triggers to keep track of what they have created.

When these have been set call:

iio_trigger_register(trig);

to register the trigger with the core, making it available to trigger
consumers.

Trigger Consumers

Currently triggers are only used for the filling of software
buffers and as such any device supporting INDIO_BUFFER_TRIGGERED has the
consumer interface automatically created.
