Charities getting too much taxpayer cash, says think-tank