Copper Phthalocyanine (CuPc) Thin Films and Nanostructures - Growth and Device Applications