How to give generously and save on your taxes