- make Add/Remove Effect methods thread safe
- Fix RemoveClip memory leak
- Improve performance of sorting clips by position and layer, cache some common accessors, and speed up "clip intersection" logic
- Don't resize audio container in loop - do it once
- Large refactor of looping through clips and finding top clip
- Protect ClearAllCache from empty Readers, prevent crash
- Expanded unit tests to include RemoveEffect, and test many of the changes in the commit.