Add property ``protoc=/path/to/protoc``

This allows people who cannot run the pre-compiled ``protoc`` pulled
from Maven Central to use their own ``protoc``.

Upgrade to protobuf-gradle-plugin:0.4.1 to display error messages of
protoc failures.
diff --git a/build.gradle b/build.gradle
index 1e69188..24f6478 100644
--- a/build.gradle
+++ b/build.gradle
@@ -52,7 +52,11 @@
             // the proto files.
             project.apply plugin: 'com.google.protobuf'
             project.protobufCodeGenPlugins = ["grpc:$javaPluginPath"]
-            project.protocDep = "com.google.protobuf:protoc:${protobufVersion}"
+            if (project.hasProperty('protoc')) {
+              project.protocPath = project.protoc
+            } else {
+              project.protocDep = "com.google.protobuf:protoc:${protobufVersion}"
+            }
             project.generatedFileDir = "${projectDir}/src/generated"
             project.afterEvaluate {
               generateProto.dependsOn ':grpc-compiler:java_pluginExecutable'
@@ -98,7 +102,7 @@
                 okhttp: 'com.squareup.okhttp:okhttp:2.2.0',
                 protobuf: "com.google.protobuf:protobuf-java:${protobufVersion}",
                 protobuf_nano: "com.google.protobuf.nano:protobuf-javanano:${protobufVersion}",
-                protobuf_plugin: 'com.google.protobuf:protobuf-gradle-plugin:0.4.0',
+                protobuf_plugin: 'com.google.protobuf:protobuf-gradle-plugin:0.4.1',
 
                 netty: 'io.netty:netty-codec-http2:4.1.0.Beta5',