add more efficient more correct scrolling

This has been implemented by adding white padding around a table of
 currently viewed songs. It then changes that table and the padding
 for it on scroll. This now shows a correct height scroll bar, and is
 efficient enough that you can keep scrolling using the scrollwheel
 on large lists with no lag. It does lag slightly when jumping around
 big blocks (i.e. navigating thousands of songs by draggin the scrollbar)
 however this is to be expected.
 To improve this the code would just need to be made more efficient.