Change Hashtable and HashSet to LinkedHashMap and LinkedHashSet.

This is intended to be a straightforward refactoring of jmake to make it run more deterministically.  At some point we instituted a policy in GWT of using the Linked* variants everywhere to keep problems related to iterating through sets and maps in different orders from cropping up.

- Convert Hashtable to LinkedHashMap
- Convert HashSet to LinkedHashSet

Since I had to change walking Hashtable entries with Enumeration to something else, I kept going with changes to get rid of warnings related to types.  

- Changed Enumeration and Iterators in most places to use for ... in  loops
- Added types/wildcards to get rid of raw type warnings

After doing this, 'ant jar' runs without any warnings from the code.  We have not noticed any noticeable impact in Pants positive or negative, but in my IDE the warnings that are left are pointing out more useful stuff.  I didn't want to go any further with changes than these which should have zero impact on the logic.

Also, these refactorings take us further from the 'published' version of jmake, I'm not sure how much we care about that.