HiCat: A Semi-Supervised Approach for Cell Type Annotation