Fix select n+1 issue in keystone catalog

keystone.catalog.backends.sql.get_catalog() and get_v3_catalog() methods
generate N+1 select statements for each endpoint. Use sqlalchemy's
eager load to generate single select statement instead of generating N+1
select statents for each endpoint.

Given change does not modify DB schema and is runtime-only, since it's a
one-to-many relationship.

Change-Id: Ia72b8603fc13f01696771f6116b320364bd50f51
Fixes: bug #1206725
Merge "Fix select n+1 issue in keystone catalog"