take a whack at faster IList<> handling by bypassing GetEnumerator()
take a whack at speeding IList<> up even more, when the IList<> happens to actually be an array