Add context to client interfaces

There is a need to pass a context down into the client when we have service accounts working with a shared client object but across multiple namespaces.  This happens most notably in the replication-controller when it needs to do the following:

1. list all replication controllers across all namespaces
2. list pods that match label selector in namespace of controller

As a result, we need to be able to dynamically change the client context by injecting it as a parameter in the major client interfaces.

This is the last change I need in prior to submitting the PR to actually enforce namespace uniqueness.
Is this one supposed to be different from all the others? (NewContext vs NewDefaultContext?)