dahdi: auto_assignment from userspace should match auto_assignment from kernel space.

The user-space components of the span assignment can be run in parallel. When
this happens, it's possible for span_assignment from user space to *not* match
span_assignment from the kernel when there are multiple devices in the system
when auto_assign_spans is 0 and there isn't a span-assignments.conf file.

This change keeps devices on a list in registration order, and
then sleep any userspace processes writing to the auto_assign attribute for the
device for up-to 5 seconds that may be auto assigning a device out of order.

If the timeout happens, the auto assignment will proceed even if it is out of
order. If the wait is interrupted by the user, it will not.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>