Differential characters, structured bundles, and differential K-theory