Break "Contours" into [Contour]

By breaking the collection up into individual elements we allow use of basic operations like `map` and `filter` in place of custom one-off solutions such as `mapContours`.

This also fixes a bug where two threads working concurrently on a single Contours structure could have gotten the wrong results.