Primarily changes to SnapshotState to provide better streaming options
+ Changes to SnapshotState to simplify the code and add better options
  for streaming
+ Updates to test code to accomodate changes to SnapshotState
+ Added a Versions utility class to aid in checking for new versions
  of an application, library, etc, based on a release list stored
  on an external server.