add filterBySelectAttribute method to page_list

re-implementation of #190 (taking into account @remo's concerns about performance raised in #184)
updated explanatory comment to be more accurate as per @remo
change helper function from private to protected

so it can be overridden more easily (thanks @mkly)
handle an array of mulitple values
small refactor to make code cleaner
refactor: call attribute controller function to determine if multiselect (instead of inline helper function with yucky SQL query)
Merge pull request #1174 from jordanlev/patch-1

add filterBySelectAttribute method to page_list