Added a RateLimit class to encapsulate pulling rate limit information
from the headers. This is now exposed by ApiInfo as well as the
RateLimitExceeededException. That way these two classes are not grabbing
the same information in different ways which we were doing before.
Right now, our observable methods are semi-cold. They don't make the
request until subscribed, but multiple subscriptions get the same
result. This is the way that Octokit.cocoa works.