Ah, Thrash, you have come to the right place. It just so happens that I have the answers you seek.
First of all, we should be clear that these are not "American" names, they are
English names. That is important, because the answer has to do with the evolution of the English language at a time when America was just trees and Indians.
English is a Germanic language, meaning it is related to German, Dutch, Danish, etc. The modern language most closely related to English is Frisian, which is spoken by a small number of people in the north of the Netherlands. If you listen to someone speaking Frisian, you can kind of almost understand them. It sounds a lot like the Swedish Chef from the Muppets trying to speak English.
At some point in the far flung past, Germanic languages underwent what is known in linguistics as the Great Consonant Shift. This caused many of the "hard" and "soft" consonants to change places. This explains why the German word for "nut" is "nusse" -- the s and the t changed. Make an s sound. Now make a t sound. You will notice that your tongue is in exactly the same place. These sounds are very closely related.
So that brings us to William/Bill. In the original Germanic form, the w in William would have been pronounced like a v. Villiam. The short form would have been Vill. V and b are related sounds, so throw in a consonant shift and you've got "Bill." (Why the long form name did not become "Billiam" is anybody's guess.)
But that doesn't explain it all. In order to understand some other types of name abbreviations, you have to understand humans' natural inclination to shorten things, especially names. Richard would have once been pronounced "Ricard." The natural inclination is therefor to shorten it to Ric/Rick. But Richard was a common name, so there would have been a LOT of Ricks kicking around. And in a time when most people did not have surnames, that could be a problem. So to differentiate between individuals people started changing the leading consonant, and thus was Dick born. Robert, another common name, produced a bunch of short forms -- Rob, Bob, Hob, Dob. That's where we eventually got the surnames Hobson and Dobson,for example (why Robson and Bobson never took off is another mystery of the ages).
Peggy from Margaret has a similar etymology. Margaret became Marge, which in turn became Meg, which was consonant-switched to Peg.
And finally, the Wm abbreviation for William was just for simplicity. William was -- and is -- one of the most common English given names. Since it had to be written out so often in various places, it made sense to abbreviate it. This is also why "Jas" is the abbreviation for James.