Add support for overriding default internal listview class

This change is somewhat larger. I needed to be able to set my own internal list view class, which is specified with an xml attribute. Of course, if the attribute is not set everything works exactly as before.