tkg's BSOD on exit fix.
https://litecointalk.org/index.php?topic=8859.msg78496#msg78496
Fix to handle blank screen with blinking cursor.
It is a bug in adl.c, in the gpu_fanpercent() function, where some R9 290/290X cards return a
negative value for fan speed percentage, where earlier models returned the default value (usually
something like 33%). This triggers the protective code to believe the card has crashed and tries
to restart.

It's fixed by adding a variable that keeps track of the maximum fan speed percentage, and only
trigger above mentioned protective code if maximum fan speed was ever above the triggered value.
Added a marquee effect to the three display separators.
When cgminer has been running for a while, the numbers rarely update - especially when working
on a high difficulty coin. The marquee effect adds a little movement to the screen, even if
nothing else changes. I'll probably add a toggle switch for it later, seeing as people will
eventually nag and bitch about it. :)
Changed GPU status line from "A:xxxxx R:xxx" to "R:0.0%". It shows (rejected/(accepted+rejected))*100, which is the percentage of rejections for a GPU. Total accepted and rejected in top status is unchanged.

GPU status lines now show both threads and intensity.
Kevin's middlecoin fix, CURL TCP keepalive constants lowered:
CURLOPT_TCP_KEEPIDLE from 45 to 5 and CURLOPT_TCP_KEEPINTVL from 30 to 5.
Before it'd trigger a keepalive packet after 45 seconds of connection idle time and then again
every 30 seconds. Now it triggers a keepalive packet after 5 seconds of connection idle time and
then again every 5 seconds.

It makes the client more resilient against coin switching pools or just pools with connection
issues in general. It will however add a tiny bit pressure to the pool server; but a
TCP keepalive probe is only about 60-80 bytes, so I don't think it is an issue.
Added program exit values for gpu-engine and gpu-memclock. This is mainly relevant for mining rigs that are also used for other purposes. Like my gaming PC. :)

When my R9 290 is mining, it is running at 1000 engine and 1500 memclock. But when I am using it for gaming, it runs 1117 engine and 1375 memclock. Normally I have to use a utility like MSI AfterBurner or Sapphire TriXX to do so. But this change allows me to set an exit value for each GPU when cgminer exits.

Above functionality as an example: --gpu-engine 1000:1117 --gpu-memclock 1500:1375

You can still combine it with multiple cards like this:
--gpu-engine 900,1000:1117 --gpu-memclock 1375,1500:1375
or this:
--gpu-engine 900:880,1000:1117 --gpu-memclock 1375:1250,1500:1375
-g or --gpu-threads now support comma separated values, yaaay!
It is exactly what it says, now you can finally put that Frankenrig configuration in one file.
The parameter follows the same design as gpu-engine and gpu-memclock.
Intensity maximum has been raised from 20 to 25. It doesn't seem to do much of a
difference above 20 for me, but others might have different experiences.
Added a startup warning message if GPU_MAX_ALLOC_PERCENT or GPU_USE_SYNC_OBJECTS is not
set through export (Linux) or setx (Windows).