Update .travis.yml for latest conventions, use fast_finish, test with -race. (#279)

* Update .travis.yml for latest conventions, use fast_finish, test with -race.

This change follows #277, but updates .travis.yml to use latest
conventions as documented at https://docs.travis-ci.com/user/languages/go#Specifying-a-Go-version-to-use.
Specifically, use master instead of tip to refer to latest (unreleased)
version of Go.

Use .x to target latest patch releases of each point release of Go.

Use fast_finish to speed up build reporting with no semantic change.
It's documented at https://blog.travis-ci.com/2013-11-27-fast-finishing-builds/.

Use race detector when running tests.

* Update .travis.yml to migrate from legacy to container-based infrastructure.

If lint doesn't do anything that would require sudo access,
it's a good idea not to require sudo access. This allows the builds
to run on Travis' newer container-based infrastructure, which
are not considered legacy and should run faster.
See https://docs.travis-ci.com/user/migrating-from-legacy/ for details.
diff --git a/.travis.yml b/.travis.yml
index 1e085c0..09fb310 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,17 @@
+sudo: false
 language: go
 go:
-  - 1.7
-  - 1.8
-  - tip
+  - 1.7.x
+  - 1.8.x
+  - master
 
 install:
   - go get -t -v ./...
 
 script:
-  - go test -v ./...
+  - go test -v -race ./...
 
 matrix:
   allow_failures:
-  - go: tip
+    - go: master
+  fast_finish: true