LeftOuterJoinedMap(leftTable: ObservableMap<K, out A>, rightTable: ObservableMap<K, out B>, assemble: (K, A, ObservableValue<B?>) -> C)
LeftOuterJoinedMap implements a special case of a left outer join where were matching on primary keys of both tables.