Correct generic bounds on AbstractArraySubject

The generic definition of the superclass of AbstractArraySubject
precluded using derived classes with SubjectFactories; SubjectFactory
requres `<S extends Subject<S,T>, T>`, while AbstractArraySubject
`Subject<AbstractArraySubject<S, T>, T>`.

By changing the base class to `Subject<S, T>`, derived classes can be
used.