Added support for USB on Linux.
* DiscImageChef/Commands/DeviceInfo.cs:
* DiscImageChef.Devices/Device/Variables.cs:
Added support for USB detection and metadata.
* DiscImageChef.Devices/Linux/Extern.cs:
* DiscImageChef.Devices/Linux/Command.cs:
Added readlink(3) support, for getting symlink destinations.
* DiscImageChef.Decoders/ATA/Errors.cs:
* DiscImageChef/Commands/DeviceInfo.cs:
* DiscImageChef.Devices/Linux/Command.cs:
* DiscImageChef.Devices/Device/Commands.cs:
* DiscImageChef.Devices/Device/AtaCommands.cs:
* DiscImageChef.Devices/Device/Constructor.cs:
* DiscImageChef.Devices/Device/AtapiCommands.cs:
* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
* DiscImageChef.Decoders/DiscImageChef.Decoders.csproj:
Moved ATA register definition to a more common place.
* DiscImageChef.Decoders/SCSI/Sense.cs:
Added information from SAT-4.
* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
Added structs with ATA registers.
* DiscImageChef.Devices/Command.cs:
* DiscImageChef.Devices/Device/Commands.cs:
Added ATA commands.
* DiscImageChef.Devices/Enums.cs:
Added SCSI's ATA Command Pass-Through enumerations.
* DiscImageChef.Devices/Linux/Command.cs:
Added ATA commands using libATA's SATL.
* DiscImageChef.Devices/Linux/Extern.cs:
* DiscImageChef.Devices/Linux/Structs.cs:
Since libata, ATA/ATAPI commands should be sent using
libata's SCSI/ATA Translation Layer, so remove HDIO ioctls.
* DiscImageChef.Interop/DetectOS.cs:
Add code to detect if running under 32 or 64 bits.