Pulled in subprojects as subtrees

See https://help.github.com/articles/about-subtree-merges

Note that if you clone this repo afresh, in order to pull in
changes in subprojects you will have to set up the remotes again