Allow timeout of a user function

Allow timing out of a processing of a tuple:

Previously the following would fail the whole job if ... takes too long. 
 .flatMapTo(('a, 'b) -> ('c, 'd)) { l: (String, String) => { ... } }

Now, you can:
 .flatMapTo(('a, 'b) -> ('c, 'd)) { l: (String, String) => safely { ... } getOrElse Seq() }

This would by default timeout ... after 10 seconds. It's configurable. 

Tested in internal repo.