For example, will accepting someone's copyrighted contribution prohibit me from changing the license, accepting donations towards the project, or anything else?
When you include other people's code in your project, you are no longer just a licensor but also a licensee – you are now bound by the terms of that license. For the GPLv3, this means for example:
that you cannot unilaterally change the project license
- in particular, dual-licensing is no longer possible
- you cannot add additional terms under GPLv3 section 7
- to do any of those you would need consent from all copyright holders
that you are now bound to honour the GPL's terms
- importantly, the section 5 terms about modified source version
- in practice, this is not an issue
No open source license prevents you from making money of the project. As far as the GPL is concerned, you can always ask for donations, even if you didn't write a single line of code.
The GPL only limits what you can charge in one specific scenario: when you distribute binaries you are obliged to provide the corresponding source code. You may not charge for access to that source code, except for a reasonable cost where the source code is provided on a physical medium (like a CD-ROM). Where source code is provided via download, that must be at no cost.
This still leaves you free to sell binaries, sell the source code if you aren't offering binaries, sell services, ask for donations, or to otherwise derive economic benefit from the software.