Add array data source that receives updates via KVO, Part Deux

This pull request builds off of splinesoft/SSDataSources#28 with the possibility of superseding it.

Instead of having a separate KVO array object, we'll double down on using `SSArrayDataSource` (as suggested [here]). The changes involve using KVO for array changes no matter how `SSArrayDataSource` is initialized.

There are a lot of granular commites to help see the evolution of the change. I can clean them up before we get the :thumbsup: to merge.

[here]: https://github.com/splinesoft/SSDataSources/pull/28#issuecomment-39520855