Refactor client with interface for setting domain.

This was a little complicated, as the baseURL property in
AFNetworking is readonly. As such, the pattern had to change
a little so that it is no longer a singleton. Instead, someone
has to instantiate a client themselves, and may choose to set
that as the current client. The current client can be fetched
from any context, so this way you don't have to pass it around.