Vendor endpoints to support different HTTP methods

This patch extend the VendorPassthru and DriverVendorPasshtru endpoints
to support to any HTTP method.

When creating a new vendor function developers can specify which are the
HTTP methods supported by each vendor function as a list, if the method
request is not in the list Ironic will return a InvalidParameterValue
(HTTP 400, Bad Request), otherwise the method will be invoked and the HTTP
method request will be available to the vendor function as a parameters
in kwargs called 'http_method'.

Partial-Bug: #1382457
Implements: blueprint extended-vendor-passthru
Change-Id: I01d9d7fdd7eaf9849db41d50fbb4a78fd31bbfdc
Merge "Vendor endpoints to support different HTTP methods"