Clean up trailing whitespace throughout

This commit removes ^M and trailing whitespace from source files,
Makefiles, and readme files. The goal is to clean the code base so that
it is easier to create patches that don't contain whitespace changes.
This is useful for editors that automatically clean trailing whitespace
on save and to avoid seeing ^M's on mixed line ending mode files.