fix bug in bond_valence
generalize SymmOp.operate_multi to work on higher dimensional arrays