Pull commits from upstream

When in conflict I have removed @davecap aesthetic changes to make future merges easier.