Guarded Dependent Type Theory With Coinductive Types