Reads a snip from a given stream, returning a newly created snip as the result or null if there is an error.