CRISLoc: Reconstructable CSI Fingerprinting for Indoor Smartphone Localization