Ensure that URL is valid while validating UUID

utils.validate_uuid() assumes that any URL after a valid first level
(like zones) is correct.  Consequently it calls the function with
incorrect number of arguments.
We now check that the URL is correct by validating the number of
arguments the function expects against the number of arguments provided.

Get, patch and delete go through this code and return a 404.  For the
same URL, POST however returns a 405.  The 405 is returned by Pecan.

Change-Id: I004c8af2ae0af3c8467f4140c5855ea75966d0e7
Closes-Bug: 1288834