Update contributing and conventions

The discussion on #1384 made me want to write a "starter projects" list, so I put that into CONTRIBUTING.md and then went a little crazy updating that file and the CONVENTIONS.md file as well. I'm not sure if you'll agree 100% with my proposed changes, but please take a look.

I also bundled in another commit with a simplification to the examples/diff.c code.