Older people have a much stronger sense of morality than the young, suggests a major study into dishonesty.