Add logic to deal with reflect pkg changes on tip.

This commit adds logic to gracefully handle the new internal reflect.Value
structure on tip as of golang commit ecccf07e7f9d.  It accomplishes this
by doing some inspection at init time and choosing the appropriate offsets
as well as modifying which offset is used for the value accordingly.  As a
result, this allows spew to work properly with both the current release
version of Go as well as tip.

Fixes #15.
Update TravisCI to use Go 1.2.

Also fix a comment typo in doc.go under the custom formatter section.
Setup TravisCI to report cov stats to coveralls.io.
Configure TravisCI goveralls call correctly.

By default goveralls tries to use gocov.  This modifies it to use the
cover profile provided by go test instead.
Correct TravisCI .yml file.
Don't change to spew dir before invoking goveralls.
Add coveralls.io test coverage badge.
Configure TravisCI to test with testcgo tag.
Point test coverage badge at master branch.
Dump non-zero len and cap for applicable types.

Closes #16.
Add logic to deal with reflect pkg changes on tip.

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.
Improve unsafe reflect value handling.

This commit modifies the unsafeReflectValue function to recognize
reference types even when the indirection flag is not set for the series
of golang commits after ecccf07e7f9d and before 82f48826c6c7 which
introduced the additional scalar field in the reflect.Value struct.  That
additional field has since been removed, but the intention of this code is
to work properly across all Go versions and other packages make use of the
logic.

Thanks to @shurcooL for providing example code which wasn't working
properly with the function when it was exported and therefore being called
in ways which spew itself does not.
Merge remote-tracking branch 'davecgh/master'