scsi-lowlevel: do not use unsafe pointer casts

Hi Ronnie, a small change that silences warnings from the compiler
about pointer accesses that are unsafe for aliasing rules

--------

Casting unsigned char * pointers to uint32_t * may cause wrong
results if the pointers are not correctly aligned.  Instead,
build up the big-endian values from each byte with multiple
dereferences of the original pointer.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>