Differential Schemes and Differential Cohomology