minor cleanup and editing
removed old code
advanced filtering speedup

only recalculates the view list once when changing multiple category
states
increased cat filter speed for large libraries

Now maintains cached lists of allowed/required/excluded categories for
the filter function to check against rather than running through the
ListView for each game.
Also added a state enum instead of using numbers for
Allow/Require/Exclude.
changed some favorite handling

individual games now reference a gamelist, so they can identify the
favorite category themselves. there are still function calls that use
the old method, which is fine but is less readable.
more special favorite handling