Add combine

Refactor and rename raceIndex() to unamb() to ensure an unambiguous
decision that takes explicit times into account.  Unfortunately, this
makes use of a private when.js API.  Afaict, there's no way to write
this unamb() function using only the ES6 promise API.  However, this
makes combine/merge/switch operations predictable and correct at fine
grained timescales.