Testing it with go1.0.3 and it compiles and all tests pass.

For case `n == 0`, returning `nil, nil` seems appropriate, since a `nil` slice is an empty slice. An array of `n==0` from Kafka is an empty array, an empty slice.

For case `n == -1`, I think it would make sense to return a `DecodingError`.  It makes no sense to have -1 repetitions of a structure as part of an array, i.e an array of length -1.

A cursory look at what other clients (C/Python/Ruby) do suggest that they just ignore that case.  I didn't look in depth, tho.