Changing URLManipulator.extractLinks overloaded methods to return Set<String> instead of Vector<String>. This was chosen for performance and automatic handling of duplicates. Using LinkedHashSet implementation so that it preserves the order in which elements are added.