Store clients in context

Having the Stack create the Clients object means that custom constraints
do not have access to the already created clients. This greatly
complicates test mocking, and results in unnecessarily created
constraint-scoped clients.

This change makes the Clients be created in RequestContext on demand.
Constraints use the Clients associated with the context.

Mocking client create calls is simplified, generally needing to
call _create once instead of MultipleTimes()

Change-Id: If67e2d6761003558b32909c4655fadb4d0630b86
Remove duplicate opt import in sqlalchemy/api.py

Remove duplicate opt import.

Change-Id: I948859540c136098b988cf71fc752424f8a028b8
Merge "Store clients in context"