Foundations of geometric cohomology: from co-orientations to product structures