A bunch of minor fixes (#492)

- Tidy up imports
 - Correct tooling installation docs
 - Fix null handling error in shelf_cors
 - Fix logging in grind script
 - Improve logging around dartfmt errors in travis script
diff --git a/README.md b/README.md
index 4c85441..ec2938a 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@
 to generate Dart code. To install, please run:
 
 ```bash
-pub global install protoc_plugin
+pub global activate protoc_plugin
 ```
 
 ## Running
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 1e9561a..e773966 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -12,6 +12,8 @@
 
 linter:
   rules:
+    - directives_ordering
     - prefer_final_fields
     - prefer_final_in_for_each
     - prefer_final_locals
+    - prefer_relative_imports
diff --git a/lib/services_dev.dart b/lib/services_dev.dart
index a544a52..ea620f5 100644
--- a/lib/services_dev.dart
+++ b/lib/services_dev.dart
@@ -10,7 +10,6 @@
 import 'dart:io';
 
 import 'package:args/args.dart';
-import 'package:dart_services/src/sdk_manager.dart';
 import 'package:logging/logging.dart';
 import 'package:rpc/rpc.dart';
 import 'package:shelf/shelf.dart';
@@ -21,6 +20,7 @@
 import 'src/common_server_impl.dart';
 import 'src/common_server_proto.dart';
 import 'src/flutter_web.dart';
+import 'src/sdk_manager.dart';
 import 'src/server_cache.dart';
 import 'src/shelf_cors.dart' as shelf_cors;
 
diff --git a/lib/services_gae.dart b/lib/services_gae.dart
index 07d03a8..b063207 100644
--- a/lib/services_gae.dart
+++ b/lib/services_gae.dart
@@ -8,7 +8,6 @@
 import 'dart:io' as io;
 
 import 'package:appengine/appengine.dart' as ae;
-import 'package:dart_services/src/sdk_manager.dart';
 import 'package:logging/logging.dart';
 import 'package:rpc/rpc.dart' as rpc;
 import 'package:shelf/shelf_io.dart' as shelf_io;
@@ -18,6 +17,7 @@
 import 'src/common_server_impl.dart';
 import 'src/common_server_proto.dart';
 import 'src/flutter_web.dart';
+import 'src/sdk_manager.dart';
 import 'src/server_cache.dart';
 
 const String _API = '/api';
diff --git a/lib/src/common_server_impl.dart b/lib/src/common_server_impl.dart
index cd156ba..61b49e2 100644
--- a/lib/src/common_server_impl.dart
+++ b/lib/src/common_server_impl.dart
@@ -19,8 +19,8 @@
 import 'compiler.dart';
 import 'flutter_web.dart';
 import 'pub.dart';
-import 'server_cache.dart';
 import 'sdk_manager.dart';
+import 'server_cache.dart';
 
 final Duration _standardExpiration = Duration(hours: 1);
 final Logger log = Logger('common_server');
diff --git a/lib/src/common_server_proto.dart b/lib/src/common_server_proto.dart
index fc13678..a9443e5 100644
--- a/lib/src/common_server_proto.dart
+++ b/lib/src/common_server_proto.dart
@@ -14,9 +14,10 @@
 
 import 'api_classes.dart' as api;
 import 'common_server_impl.dart' show CommonServerImpl, BadRequest;
-export 'common_server_impl.dart' show log, ServerContainer;
 import 'protos/dart_services.pb.dart' as proto;
 
+export 'common_server_impl.dart' show log, ServerContainer;
+
 part 'common_server_proto.g.dart'; // generated with 'pub run build_runner build'
 
 const PROTOBUF_CONTENT_TYPE = 'application/x-protobuf';
diff --git a/lib/src/server_cache.dart b/lib/src/server_cache.dart
index ef4131d..3bddaf4 100644
--- a/lib/src/server_cache.dart
+++ b/lib/src/server_cache.dart
@@ -11,8 +11,8 @@
 import 'package:pedantic/pedantic.dart';
 import 'package:quiver/cache.dart';
 
-import 'sdk_manager.dart';
 import 'common_server.dart' show log;
+import 'sdk_manager.dart';
 
 abstract class ServerCache {
   Future<String> get(String key);
diff --git a/lib/src/shelf_cors.dart b/lib/src/shelf_cors.dart
index 6d9cb4a..6e323ac 100644
--- a/lib/src/shelf_cors.dart
+++ b/lib/src/shelf_cors.dart
@@ -25,7 +25,7 @@
   }
 
   Response addCorsHeaders(Response response) =>
-      response.change(headers: corsHeaders);
+      response?.change(headers: corsHeaders);
 
   return createMiddleware(
       requestHandler: handleOptionsRequest, responseHandler: addCorsHeaders);
diff --git a/test/all.dart b/test/all.dart
index a779ead..59fd367 100644
--- a/test/all.dart
+++ b/test/all.dart
@@ -8,9 +8,9 @@
 import 'api_classes_test.dart' as api_classes_test;
 import 'bench_test.dart' as bench_test;
 import 'common_server_api_v1_test.dart' as common_server_api_v1_test;
-import 'common_server_api_v2_test.dart' as common_server_api_v2_test;
 import 'common_server_api_v2_protobuf_test.dart'
     as common_server_api_v2_protobuf_test;
+import 'common_server_api_v2_test.dart' as common_server_api_v2_test;
 import 'common_test.dart' as common_test;
 import 'compiler_test.dart' as compiler_test;
 import 'flutter_web_test.dart' as flutter_web_test;
diff --git a/tool/grind.dart b/tool/grind.dart
index b03c1d9..5b1926b 100644
--- a/tool/grind.dart
+++ b/tool/grind.dart
@@ -305,8 +305,8 @@
       includeParentEnvironment: runOptions.includeParentEnvironment,
       runInShell: runOptions.runInShell);
 
-  proc.stdout.map((out) => log(runOptions.stdoutEncoding.decode(out)));
-  proc.stderr.map((err) => log(runOptions.stdoutEncoding.decode(err)));
+  proc.stdout.listen((out) => log(runOptions.stdoutEncoding.decode(out)));
+  proc.stderr.listen((err) => log(runOptions.stdoutEncoding.decode(err)));
   final exitCode = await proc.exitCode;
 
   if (exitCode != 0) {
diff --git a/tool/travis.sh b/tool/travis.sh
index 78ae768..b86d4a5 100755
--- a/tool/travis.sh
+++ b/tool/travis.sh
@@ -17,7 +17,9 @@
 pub run grinder validate-storage-artifacts
 
 # Enforce dart formatting on lib, test and tool directories.
+echo -n "Files that need dartfmt: "
 dartfmt --dry-run --set-exit-if-changed lib test tool
+echo "All clean"
 
 # Gather coverage and upload to Coveralls.
 if [ "$REPO_TOKEN" ] && [ "$TRAVIS_DART_VERSION" = "dev" ]; then