Added toArrayList().

If we're going to tell you to use an ArrayList instead of toArray(), let's make
that easy. This would be unnecessary if there was an ArrayList constructor that
took Iterable, but there isn't. And DSet is not a Collection.
Work around path replacement issue.

This is not optimal, but it's no worse than it was before and fixes one
particular failure mode.