Bluetooth: Check hci_req_run error code in __hci_req_sync

Since hci_req_run will be returning more than one error code, we
should check its returning value in __hci_req_sync. This patch also
changes the error code when the HCI request is empty to a more
suitable code.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Add error flag to struct hci_request

This patch adds an error flag to struct hci_request to indicate that
something went wrong during HCI request creation. In case of error,
hci_req_run deletes all HCI commands queued on HCI request queue and
returns error.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Make hci_req_add return void

Since no one checks the returning value of hci_req_add and HCI request
errors are now handled in hci_req_run, we can make hci_req_add return
void.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>