Split up SubListModel

Breaks up the internal _SubListModel into an abstract base class
_ListModel leaving behind the substitution list-specific stuff in
_SubListModel.