Hydrogen sensing and mechanism of M-doped SnO2 (M = Cr3+, Cu2+ and Pd2+) nanocomposite