Two fixes:
* The find-doubles operator was overriding the "dirty" element
indices, so vertices were not being mapped correctly.
* In some cases a vertex can be set to merge with a vertex that is
also set to be merged, so added a loop to find the first unmerged
vert in this case.
Not yet working is the "First Last" merge option.
Also made some cleanups and added comments in the array/remove doubles
code.