Move jmh benchmarks to their respective modules

The benchmarks should be close to the code they're benchmarking, like
we do with tests.

This includes a bugfix to SerializingExecutorBenchmark to let it run.

The io.grpc.benchmarks.netty benchmarks in benchmarks/ depend on
ByteBufOutputMarshaller from benchmarks's main, so they were not moved.
diff --git a/core/build.gradle b/core/build.gradle
index 32d223c..450f0ba 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -18,3 +18,8 @@
     exclude 'io/grpc/Internal?*.java'
     exclude 'io/grpc/internal/**'
 }
+
+animalsniffer {
+    // Don't check sourceSets.jmh
+    sourceSets = [sourceSets.main, sourceSets.test]
+}