enhanced validation and smarter access checking

Added better validation around null loggers, and added a new
BlackholeLogger to be used as the default logger for a generator
(instead of null).

The generator will now do better validation and access checking around
the directory passed to its Generate method.

Internally, the generator will now work with file streams (which will be
accessed as soon as possible) and detect when they cannot be accessed.

A FileUtilities class now handles file handle generation and directory
validation/creation.  This also includes a RelocateFilePath method,
which will be used in applications to process image paths.
adding utilities for saving/loading sprite sheets

In the process, consolidation of unit test logic was placed in the
TestUtilities class.

For better disambiguation, the FileUtilities.GetFileStream method was
renamed to GetWriteFileStream as there is now a corresponding
GetReadFileStream method.
fixing GUID generation for sprites
documentation/marking methods shared
throw exception on null sprites for relocation
unit testing sprite relocation

in addition, file path checking was modified to be case-insensitive