Improve Catalog

* Reduces number of queries needed to calculate the available items (cart date changes now lie in the 800-900 ms range)
* Only refreshes the catalog listings page and not the paginating code, resolving #531 
* Refactor pagination code to make it more readable

I'll remove them