Add predicate functionality to BSInterfaceActor.

This fixes the issue referenced in the previous commit.  By adding a
predicate to each BSInterfaceActor, we can test whether or not we need
to run its action *before* we actually run it.  This prevents
overlapping regions from grabbing control when it isn't their turn.