Update `@client @export` variables through Observable subscriptions
Update `@client @export` variables through Observable subscriptions

When using `client.watchQuery` to setup an Observable against a
query that's using `@client @export` directives, cache changes
could happen that lead to the value of the `@client @export` variable
changing. When this happens, if the watched query is using a mixture
of local and remote data, the watched query itself might become
invalid, since the `@client @export` variable used to fetch
the data has now changed. To address this, this commit updates
the `ObservableQuery` observers such that they first check to see
if `@client @export` directives are being used, and update any
associated variables. It will then perform a `refetch` using the
new variables if needed, otherwise it will let the observers
continue with their normal behaviour.

apollostack/apollo-client,apollostack/apollo-client,apollostack/apollo-client,apollographql/apollo-client,apollographql/apollo-client