API validates driver name for both POST and PATCH

Change the RPCAPI get_topic_for method to raise a
NoValidHost exception when the driver is not found in the hash ring.

This allows the API to validate the driver before passing it either
to the dbapi (in POST) or to the conductor (in PATCH). In this way,
the error returned to the user is the same, and the error handling
is very similar in the code, when either creating or updating a node
and supplying a non-existing driver.

Change-Id: I392269882d9a58e1c682631c094d1ed387e45aa5
Closes-bug: #1238167
Merge "API validates driver name for both POST and PATCH"