This function returns a list containing summarised intensities and other
information extracted from a single .idat file. Thanks to Keith Baggerly for providing the first version of this code.
There are two commonly encounted versions of IDAT. One version uses
encryption to store data and is the format usually produced by Illumina
expression arrays. The other version is unencrypted files and
is found in data from SNP arrays and DNA methylation arrays.
This function is able to handle data in either format, scanning the
file header and calling the appropriate reading routine internally.
The function supports reading gzipped, unencrypted IDATs.