API changed! Decode() accepts bytes.Buffer instead io.Reader. But added DecodeFrom(io.Reader). Now Encode() and Decode() are symmetric: encoding result returns in bytes.Buffer and decoder accepts bytes.Buffer.