implement scsi_cmd for Windows

This isn't tested with a disc yet. Only compilation (cmake) is tested in a VM.
prepare autotools build with windows scsi_cmd

This still doesn't seem to work in MinGW and Cygwin.
discid_get_track_length can't be linked somehow.

CMake works fine.
work around windows dllexport issue

Since we can't use any discid_* functions anywhere else other than in disc.c on Windows due to the __declspec(dllexport),
we have to move the code to some place where we can also access it internally.

It's just 4 lines, but we have to make sure both places use the same code. Otherwise we get weird issues.
add ntddscsi.h for MSVC

Similar to ntddcdrm.h, this header is included in MinGW and Cygwin, but
has to be downloaded separately for plain Windows.
This would be part of the Windows Driver Development Kit (ddk),
but that version is probably not redistributable for us.

This version comes from dosbox again.
msvc: remove new warnings
Windows: fix scsi_cmd (return, GENERIC_WRITE)

Sending scsi commands needs GENERIC_WRITE for the handle,
otherwise no data is returned.

For DeviceIoControl a return value of 0 is the error condition,
while the return value of scsi_cmd is expected to be 0 on success.

We now return the scsi status as we do in Linux.
add more debug output for w32 scsi_cmd

This should handle cases where no actual error is reported,
but other things are fishy.
check for data_len, rather than 96

This was already fixed a month ago,
but the unfixed commit was in the main repo.
create mb_scsi_handle struct

This way we don't have to cast between HANDLE (void *)
and int.
We might need a third handle for OS X later on.
Merge branch 'scsi_handle' into scsi_windows
Merge branch 'scsi_windows' into isrc_raw

This adds raw isrcs reads on Windows.

Conflicts:
	src/disc_linux.c
	src/scsi.h