Change-up management library so there's only one true client.

This behavior isn't great, but it'll do for now. I don't want to declare a new
API client for each resource. This makes it a singleton in the module and does
some kind-of-weird logic to make sure the right data and methods are available
and in the right place at the right time. I have confirmed it works.