Film: McAvoy rescues a Shyamalan schlockfest