added mlk::slot<T> constructor that takes a function