Handle CZML availability with multiple intervals.

`DynamicObject.availability` is now a `TimeIntervalCollection` instead of a `TimeInterval`.  The availability property is still always replaced when a new availability is provided, no merging happens.

@shunter I know we seem to run into new issues whenever we start playing with `availability`.  I think we're okay here, but let me know if you think of any reason this isn't a good idea, or if it creates any issues I didn't think of.

CC @mrmattf