codec: fix resolving list of struct fields to keep appropriate ones based on go's precedence rules
codec: fix resolving list of struct fields to keep appropriate ones based on go's precedence rules

- Use encName when resolving list of struct fields to remove redundant ones
- fix algorithm that determines which structfield info to set to nil based on go's precedence rules

Fixes #159

ugorji/go,ugorji/go,ugorji/go