Scala signal/slot trait