Implement new behavior for KVOing array w/ SSArrayDataSource

This gives SSArrayDataSource a distinct initializer that gives it the
KVO behavior of an array off of some object at a key path. All of the
previous tests are passing.
Use internal KVO minoring for plain 'ol SSArrayDataSource

Instead of having two paths for array manipulation and view updates
within SSArrayDataSource (between being handed an NSArray to manage and
KVOing a target keyPath), let's just always KVO, whether or not target
is an external object or self.