JavaScript data structure for implmenting ordered observable collection