Buffer usage

Minor refactoring @xla  @juliusv 
Actually, the type could just be:

    type snapshot bytes.Buffer

Then you could omit defining your own `Write()` and `Reset()` wrappers.

And you also won't need any new...-function for it anymore to construct it. As a general rule, only include constructor (new...) functions if they do any real work. E.g. if all the do is fill in passed values into a struct (that are visible to the caller), you don't need a new... function, just let the caller fill out those values. But if the constructor does even a bit of work like making channels or non-nil slices, or perhaps more, then use a constructor function.