scsi: clean up scsi_bus_parse_cdb

Based on offlist comments from Markus and Stefan, this tweak to the previous
patches for vendor-specific command passthrough simplifies the logic a bit:

- scsi_req_parse_cdb is always called first, either directly or via
scsi_bus_parse_cdb.  We can call it in scsi_req_new, and drop it in
scsi_bus_parse_cdb as well as outside scsi-bus.c.

- Initializing cmd in scsi_req_new but cmd.lba in scsi_req_parse_cdb
is gross, scsi_req_parse_cdb is always called and thus provides a
better place to do it.  We can also remove the "does not contain garbage"
assertion in scsi_bus_parse_cdb.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>