A Survey of Blockchain Technology and Applications with a Commentary on their Relationship to Collaborative Software Engineering