Split pl () out to separate file

Split the playlist display within to a separate function
to allow for easier modification/reuse as noted in TODO.

Removed case select from the state-based coloring in favor
of another associative array to reduce needless duplication.