Added caching and pagination for GS openscholar/openscholar#3169

GS's cron job loops over all pending topics.  But a GS search gives me only 15 topics at a time.  Because of this I needed to add support for paging through the topics.  That's enabled, but I still ahve to change the cron job to use it.

Because paging adds so many API calls, I also added a cache.  Tapir (my API calling lib) takes two new optional vars.  They're the names of methods for storing a cahce.  I wanted to use drupal's cache system without forcing tapir to be a drupal module.  This seemed like the best way to let it hook into an external cache system.  Using that is going to require an osops rebuild.