Add sync and async support for passthru methods

This patch extend the @passthru and @driver_passthru decorators to
add support to vendor to determine whether their methods should run
synchronously or asynchronously.

A new flag "async" was added to the decorators, if True (the default)
run the method asynchronously if False synchronously.

The RPC methods vendor_passthru() and driver_vendor_passthru() return
values were updated to also return the mode that the vendor method was
invoked. This is needed because the API should return a different HTTP
code depending on the mode, which is 202 (Accepted) for async and 200
(OK) for sync.

Before the driver_vendor_passthru() was always synchronously and the
vendor_passthru() asynchronously, this patch makes things more consistent
by supporting both modes on both endpoints.

Partial-Bug: #1382457
Implements: blueprint extended-vendor-passthru
Change-Id: I6e7f6c61e9933cba7411d4e9acca9dd8720e9bfe