Separate invokers into those that only run blackbox containers and those that run managed ones.
The sets may overlap as there is a non-empty requirement.
Simplify invoker selection which also takes a step towards dynamic choice.
Add parameter to control fraction of invokers dedicated to blackbox containers.

Separate invokers into those that only run blackbox containers and those that run managed ones.
diff --git a/tests/src/whisk/core/controller/test/ControllerTestCommon.scala b/tests/src/whisk/core/controller/test/ControllerTestCommon.scala
index cf002d6..1ad5e7e 100644
--- a/tests/src/whisk/core/controller/test/ControllerTestCommon.scala
+++ b/tests/src/whisk/core/controller/test/ControllerTestCommon.scala
@@ -192,7 +192,8 @@
 
     override def getActiveUserActivationCounts: Map[String, Long] = Map()
 
-    override def publish(msg: ActivationMessage, timeout: FiniteDuration)(implicit transid: TransactionId): (Future[Unit], Future[WhiskActivation]) =
+    override def publish(action: WhiskAction, msg: ActivationMessage, timeout: FiniteDuration)
+                        (implicit transid: TransactionId): (Future[Unit], Future[WhiskActivation]) =
         (Future.successful {},
             whiskActivationStub map {
                 activation => Future.successful(activation)