Repository: flutter
Issue: All plugins are grabbed with Implementation rathar than Api which prevents accessing the plugin from existing apps
Labels: tool,engine,t: gradle,a: existing-apps,P2,a: plugins,team-engine,triaged-engine

## Steps to Reproduce
### TLDR;
- I created a flutter-plugin (With a static listener that your existing app can register itself to):
https://github.com/shehabic/dhplugin/blob/master/android/src/main/java/com/deliveryhero/pandora/dhplugin/DhpluginPlugin.java
- I create a module to consume this plugin
https://github.com/shehabic/dhmodule/blob/master/pubspec.yaml
- I created an app that uses this flutter plugin
https://github.com/shehabic/demo-app-android
- existing app registers itself to answer requests coming from the communication channel.
https://github.com/shehabic/demo-app-android/blob/master/app/src/main/java/com/shehabic/demoapp/HomeActivity.kt#L25 
- The problem is here:
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/gradle/flutter.gradle#L187 

### More details
1. Create any flutter plugin e.g. a plugin that will always ask **your existing app** for data.
2. Assume that the heavy functionality of the collecting data is already in your Existing App.
3. Assume for that purpose you decided to add a listener in your native implementaion for your plugin on both Android and iOS, such that everytime a message arrives from your communication channel you ask the existing app via the `listener registered to answer requests`
4. Assume that you're importing this plugin through flutter `module` (The standard way), and your module has dependencies to many plugins.
5. Your app will only see code implemented in the flutter-module, but not any of the plugins.
6. The problem is at this point.
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/gradle/flutter.gradle#L187
the following change solves the problem:
```
   api pluginProject
```

<!-- If possible, paste the output of running `flutter doctor -v` here. -->

```
[✓] Flutter (Channel master, v0.10.2-pre.131, on Mac OS X 10.14 18A391, locale en-DE)
    • Flutter version 0.10.2-pre.131 at /Users/m.osman/development/flutter
    • Framework revision 01c7081565 (8 hours ago), 2018-10-31 21:12:51 -0700
    • Engine revision c79faed71c
    • Dart version 2.1.0 (build 2.1.0-dev.8.0 bf26f760b1)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/m.osman/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 2.0.0
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 29.1.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] VS Code (version 1.28.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.19.0

[!] Connected device
    ! No devices available
```