config: add SortKeys option to sort native map keys before display

If ConfigState.SortKeys is true, then dump and format will sort map keys
before displaying them. Only native types (bool, ints, uint, uintptr,
string) are supported, other slices are left unchanged.

The motivation is to have more diffable output, mostly for test purpose.
dump: make SortKeys default to string representation instead of nothing

The previous version of SortKeys was sorting only native types. Now, if
the type is unknown it defaults to its reflect.Value.String()
representation which at least guarantees display stability.
Merge pull request #13 from pmezard/add-option-to-sort-map-keys

config: add SortKeys option to sort native map keys before display
Fix a few style issues pointed out by golint.
Reorganize the new map key sorting functionality.

This commit moves the new code related to sorting reflect.Value items into
common.go since it is accessed by both the formatter and the dumper.  It
also adds comments to the new functions and unexports SortValues since it
should be an internal function only.
Move TestSortValues to common_test.go.

This commit moves the TestSortValues function from dump_test.go to
common_test.go to mirror the new implementation location.  It also
slightly formats the tests to be consistent with the rest of the package.
Update imports for previous.
Reorder Less function cases to consistent order.
Correct valuesSorter.Less function for uintptr.

The function sort be sorting the uintptr itself, not the address of it.
Also, the previous code could easily panic on an unaddressable
reflect.Value since it was trying to take an address.
Add additional tests for new sortValues code.

This brings the test coverage back to 100%.
Update README and doc.go with new SortKeys option.
Add godoc reference badge to README.md.
Add SortKeys option to doco for NewDefaultConfig.
Add TravisCI support.
Require Go 1.1 for TravisCI.
Add TravisCI build status badge to README.md.
Make build status badge only apply to master branch.
tests: fix TestSortValues on 32-bits platforms

reflect.DeepEqual fails when comparing reflect.Value containing float64. I
think it cannot make sense of reflect.Value pointer tricks and directly
compare reflect.Value.val fields which contain the float value in 64 bits,
but a pointer to the float in 32 bits.

Fortunately, interface{} which have a similar memory layout, compare correctly,
so we just turn the []reflect.Value into []interface{}.
Merge pull request #14 from pmezard/fix-sorting-test-on-32bits

tests: fix TestSortValues on 32-bits platforms
Merge remote-tracking branch 'davecgh/master'