What does “GPL” stand for?

“GPL” stands for “General Public License”.
The most widespread such license is the GNU General Public License, or GNU GPL for short.
This can be further shortened to “GPL”, when it is understood that the GNU GPL is the one intended.

Does the GPL allow me to charge a fee for downloading the program from my distribution site?

Yes. You can charge any fee you wish for distributing a copy of the program.
Under GPLv2, if you distribute binaries by download, you must provide “equivalent access” to download the source—therefore, the fee to download source may not  be greater than the fee to download the binary. If the binaries being distributed are licensed under the GPLv3, then you must offer equivalent access to the source code in the same way through the same place at no further charge.

Why does the GPL permit users to publish their modified versions?

A crucial aspect of free software is that users are free to cooperate.
It is absolutely essential to permit users who wish to help each other to share their bug fixes and improvements with other users.

Some have proposed alternatives to the GPL that require modified versions to go through the original author.
As long as the original author keeps up with the need for maintenance, this may work well in practice, but if the author stops (more or less) to do something else or does not attend to all the users’ needs, this scheme falls down. Aside from the practical problems, this scheme does not allow users to help each other.

Sometimes control over modified versions is proposed as a means of preventing confusion between various versions made by users. In our experience, this confusion is not a major problem. Many versions of Emacs have been made outside the GNU Project, but users can tell them apart.
The GPL requires the maker of a version to place his or her name on it, to distinguish it from other versions and to protect the reputations of other maintainers.

Does the GPL require that source code of modified versions be posted to the public?

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program’s users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

GPLv2 says that modified versions, if released, must be “licensed … to all third parties.” Who are these third parties?

Section 2 says that modified versions you distribute must be licensed to all third parties under the GPL.
“All third parties” means absolutely everyone—but this does not require you to do anything physically for them.
It only means they have a license from you, under the GPL, for your version.

Does the GPL allow me to sell copies of the program for money?

Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software.
Except in one special situation, there is no limit on what price you can charge.
(The one exception is the required written offer to provide source code that must accompany binary-only release.)