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

shouldn't this be ```$('#catalog_listing').replaceWith()``` ?

```.html()``` [only grabs the current content](http://dochub.io/#jquery/html), doesn't replace it, and in my testing updating the cart doesn't change the div dates like this line indicates it should.