contributing: section on one change per commit

This gives some advice on what not to mix into a single commit.
contributing: add section on writing good commit messages

This gives us something to refer people to in the future.
contributing: shuffle headings around

The "Contributing Guidelines" section is now more a section about how
to write good commits, so it has been renamed to better match its
content.

This means that we now have main headings about how to use pull
requests, how to write good commits and how to use the long-term
branches in the repositories.
contributing: remove C4 reference

Instead of referring to a large set of rules in an external document,
we now have sufficient guidelines in our own document to help
contributors. Our document emphasizes good code quality.

The rules and guidelines in our document are generic and have been
inspired by other large open source projects such as Mercurial, Git,
and OpenStack:

  http://mercurial.selenic.com/wiki/ContributingChanges
  https://github.com/git/git/blob/master/Documentation/SubmittingPatches
  https://wiki.openstack.org/wiki/GitCommitMessages

The idea is that this process should be familiar to other
contributors, while ensuring that we maintain high code and design
quality.
contributing: add link to contact page
contributing: move "git rebase" advice to bottom

The idea is to keep the guidelines at the top light-weight and easy to
read. The more heavy Git commands are then moved to the bottom part.
contributing: move "git rebase -i" text to bottom

Separating the detailed commands from the guideline above allows us to
expand on the commands without fearing that we obscure the message in
the guidelines.
contributing: move "git commit --amend" text to bottom

This also makes the guideline above more clear.
contributing: add section on splitting commits
contributing: fix old typo in Branches section