Convert uses of Vector to List/ArrayList

Vector is a Java 1.0 legacy class which is no longer recommended for use because it is synchronized, causing lower performance, and because it doesn't fit with the rest of the more modern Collections classes.

This pull request changes everything to use List in the API and ArrayList in the implementations.

Not done as part of this, but useful for as a next step would be to switch from using Enumerations (also no longer recommended) to Iterators.  For this piece, to preserve API compatibility, I've introduced an adapter to class to convert iterators to enumerations where needed by the API.