RestClient to target specific services in Keystone catalog

Previously, the rest client had no notion of specific services
other than nova, since that is all the current tests cover.  It
also assumed the first row in the keystone.services was the service
that provides the nova endpoint.  This change allows the RestClient
to target specific services in the keystone catalog by name.  Current
nova services are updated to find the nova endpoint.  Future services
that hit glance or swift directly can make use of this as well.

Cleanup pep8 in exceptions.py

Fixes bug 911528

Change-Id: I4d885d96a1d360021b4c8f6aa562f863c6df3608
7 files changed