Highlight and autoremove trailing whitespace

Many commits observed in projects where only significant difference
is whitespace. Clear from wide range of sources that it's best to
consistently remove trailing whitespace to avoid messy diffs.

Use tips from the vim wiki to:

- Highlight trailing whitespace in all files automatically
- Remove trailing whitespace on write for a subset of filetypes

Limit the removal to the most common filetypes used, and extend later
if neccessary.