Fixes for major category listing problems

The old :contains() selector method is flawed because some categories
may be substrings of others (eg: categories [ 'foo', 'i love foo', 'foo again' ])

This was causing duplicate entries in the other categories.

New method is also faster, because it doesn't involve building several arrays, 
adding the entries to DOM and then searching the dom. Instead
it does all of this in two loops.

Also fixed the height, and used event delegation for extra victory points :)