virt: Rewrite github_issues tool

Old implementation demanded marshaling and caching all data for every
requested issue.  That made it difficult to make changes to the upstream
data while managing cache.  It also lowered the benefits of caching
since the initial cost was higher than required.

* Renamed github_issues -> libpygh since it sits ontop of pygithub
  and now handles much more than just issues.  Pronounced "Lib PIG" :D

* Implement CacheProxyBase class to help with Just-In-Time caching of
  only specifically requested data.

* Implement GlobalRateLimiter class, singleton rate limiting
  helper that limits based on actual requests consumed over time.

* Implemented GithubCacheProxy and RepoCacheProxy as intermediate
  subclasses taylored for github-object or repo-object centered
  subclasses.

* Implemented GithubUsersProxy, RepoLabelsProxy, IssueCommentMeta
  PullCommentMeta, IssueCommentsProxy, PullCommentsProxy, CommitsProxy
  IssueProxy classes for caching their respective github objects.

* Implemented IssueSearchCriteria and IssueSearchProxy to cache
  issue search results.

* Added unittests to assist with verifying interface and functionality
  of libpygh.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: Fix cache_dump to match new libghpy API

Signed-off-by: Chris Evich <cevich@redhat.com>