This commit adds logic to gracefully handle the new internal reflect.Value
structure on tip as of golang commit 82f48826c6c7 as well as the internal
reflect.Value flag bit changes as of golang commit 90a7c3c86944.
It accomplishes this by doing some inspection at init time and choosing
the appropriate offsets and flag positions accordingly. There was some
previous logic which dealt with a similar issue for golang commit
ecccf07e7f9d. However, since the more recent commits essentially reverted
the change and also modify the flag bit positions, it made more sense to
rework the detection logic. In particular, the new logic examines the
size of the reflect.Value struct to determine the difference and extracts
the kind from the flags to determine if the flags have been changed.
As a result, this commit allows spew to work properly with tip all the
back to Go 1.0.