Add native Windows IO.

As for POSIX, this allows the use of native file handles.  It also
provides the benefit of using unicode filenames.
Add more functionality to vtkDICOMFile.

The GetFileSize() eliminates the need to call stat() in some
circumstances.  I want to avoid the use of stat() on Windows,
since it uses the default 8-bit codepage for filenames, while
vtkDICOMFile uses utf-8.
Fix GetSize so all implementations return -1 on error.
Add vtkDICOMValue methods that use count arguments.
Use size_t instead of unsigned int as interface type.

Using unsinged int is likely to cause many many compiler warnings,
because unsigned int is smaller than size_t and ptrdiff_t on 64 bit
systems.
Clean up vtkDICOMValue code, avoid unnecessary calcs.
Remove deprecated vtkDICOMValue methods from code.
Add another 8-bit field in vtkDICOMValue for overflow.

This is specifically for values that use delimiters instead of fixed
lengths, such as OB or UN VRs that store encapsulated data.  By adding
an 8-bit overflow byte for the 32-bit NumberOfValues field, it becomes
possible to store encapsulated data with sizes up to 2^40 bytes (1TB).
Values that use fixed lengths are still limited to 2^32-2 bytes (4GB)
as per the standard.
Use unsigned char as the basic "byte" type.

This will help to improve security, because the signedness of unsigned
char is always "unsigned", while the signedness of "char" depends on the
compiler.
Add an image codec class for compression/decompression.