Port latest batch of cukes from master to gh

:warning: This is my work in progress; some cukes still fail

/cc @jingweno
Comparing `remoteProject == project` (so, struct to struct) didn't work for me for some reason. I thought Go structs will return true on `==` comparison if all their fields are equal?

Anyway, as a workaround, I created a dedicated method for comparison: `project.SameAs(otherProject)`. Is this what Go people do?