Injective and projective Heyting algebras