Improve display of unsupported programs.

Got rid of all the mess here by restructuring the GetUserPrograms loop.
Instead of maintaining two separate lists of programs, I add all the
programs to the list and decide whether they're visible.