Fix Strong Mode error with latest shelf

- Add analysis_options.yaml to enable strong mode.
- Fix Strong mode errors.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f630263..13905e0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.2-dev
+
+- Fix Strong mode errors with `package:shelf` v0.7.x
+
 ## 1.0.1
 
 - Allow dependencies on `package:shelf` v0.7.x
diff --git a/analysis_options.yaml b/analysis_options.yaml
new file mode 100644
index 0000000..3d7fdea
--- /dev/null
+++ b/analysis_options.yaml
@@ -0,0 +1,37 @@
+analyzer:
+  strong-mode: true
+linter:
+  rules:
+    - avoid_empty_else
+    - avoid_init_to_null
+    - avoid_null_checks_in_equality_operators
+    - await_only_futures
+    - camel_case_types
+    - cancel_subscriptions
+    - constant_identifier_names
+    - control_flow_in_finally
+    - directives_ordering
+    - empty_catches
+    - empty_constructor_bodies
+    - empty_statements
+    - hash_and_equals
+    - implementation_imports
+    - iterable_contains_unrelated_type
+    - library_names
+    - library_prefixes
+    - list_remove_unrelated_type
+    - non_constant_identifier_names
+    - overridden_fields
+    - package_api_docs
+    - package_names
+    - package_prefixed_library_names
+    - prefer_final_fields
+    - prefer_is_not_empty
+    - slash_for_doc_comments
+    - super_goes_last
+    - test_types_in_equals
+    - throw_in_finally
+    - type_init_formals
+    - unnecessary_brace_in_string_interps
+    - unrelated_type_equality_checks
+    - valid_regexps
diff --git a/lib/src/async_handler.dart b/lib/src/async_handler.dart
index 1b68f12..3445aca 100644
--- a/lib/src/async_handler.dart
+++ b/lib/src/async_handler.dart
@@ -12,12 +12,13 @@
 
   AsyncHandler(Future<Handler> future) : _future = new ResultFuture(future);
 
-  call(Request request) {
+  FutureOr<Response> call(Request request) {
     if (_future.result == null) {
       return _future.then((handler) => handler(request));
     }
 
-    if (_future.result.isError) return _future;
+    if (_future.result.isError)
+      return new Future.error(_future.result.asError.error);
 
     return _future.result.asValue.value(request);
   }
diff --git a/lib/src/dir_handler.dart b/lib/src/dir_handler.dart
index 3605aa9..47f86af 100644
--- a/lib/src/dir_handler.dart
+++ b/lib/src/dir_handler.dart
@@ -4,6 +4,8 @@
 
 library shelf_packages_handler.dir_handler;
 
+import 'dart:async';
+
 import 'package:path/path.dart' as p;
 import 'package:shelf/shelf.dart';
 
@@ -22,7 +24,7 @@
   DirHandler(this._name, this._inner);
 
   /// The callback for handling a single request.
-  call(Request request) {
+  FutureOr<Response> call(Request request) {
     var segments = request.url.pathSegments;
     for (var i = 0; i < segments.length; i++) {
       if (segments[i] != _name) continue;
diff --git a/lib/src/package_config_handler.dart b/lib/src/package_config_handler.dart
index fd79290..7994d48 100644
--- a/lib/src/package_config_handler.dart
+++ b/lib/src/package_config_handler.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:async';
+
 import 'package:package_resolver/package_resolver.dart';
 import 'package:path/path.dart' as p;
 import 'package:shelf/shelf.dart';
@@ -22,7 +24,7 @@
   PackageConfigHandler(this._resolver);
 
   /// The callback for handling a single request.
-  call(Request request) {
+  FutureOr<Response> call(Request request) {
     var segments = request.url.pathSegments;
     return _handlerFor(segments.first)(request.change(path: segments.first));
   }
diff --git a/pubspec.yaml b/pubspec.yaml
index 40cc176..b0d67ef 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,11 +1,11 @@
 name: shelf_packages_handler
-version: 1.0.1
+version: 1.0.2-dev
 description: A shelf handler for serving a `packages/` directory.
 author: Dart Team <misc@dartlang.org>
 homepage: https://github.com/dart-lang/shelf_packages_handler
 
 environment:
-  sdk: '>=1.9.0 <2.0.0'
+  sdk: '>=1.21.0 <2.0.0'
 
 dependencies:
   async: '^1.1.0'