A recursively observable dictionary in Knockout