Make discovery mode work with CUPS 1.4.x
Make discovery mode work with CUPS 1.4.x

The new CUPS 1.4.x does device discovery only for a given time frame
requested by the client (printer setup tool, "lpinfo" command). CUPS's
default for CUPS-1.3.x-ish requests without timeout specification
seems to be 10 seconds. CUPS starts all backends at once in the
beginning (in parallel) and kills every backend which remains running
at the end of the timeout. It accepts output from the backends
whenever it occurs not only when the backend finishes, so a backend
can search for printers infinitely long if it outputs every found
device immediately. Then all printers found during CUPS' timeout are
taken into account.

The bluetooth backend of 4.48 asks the Bluetooth daemon for printers
and collects results for 10 seconds and after that it outputs
them. This takes a total of 10.5 sec and so CUPS kills the backend
right before it answers (at least with the 10-second default timeout),
resulting in Bluetooth printers never being discovered by CUPS.

This change fixes it by making each new printer added to the list
being output immediately. Note that the list structure cannot be
removed from cups/main.c as otherwise we would get duplicate
listings. Also important is the addition of unbuffered output on
stdout.

ComputeCycles/bluez,ComputeCycles/bluez,mapfau/bluez,pstglia/external-bluetooth-bluez,pstglia/external-bluetooth-bluez,silent-snowman/bluez,ComputeCycles/bluez,pkarasev3/bluez,pstglia/external-bluetooth-bluez,pstglia/external-bluetooth-bluez,mapfau/bluez,ComputeCycles/bluez,silent-snowman/bluez,pkarasev3/bluez,pkarasev3/bluez,mapfau/bluez,silent-snowman/bluez,mapfau/bluez,silent-snowman/bluez,pkarasev3/bluez