Violence and abuse against staff costs the NHS more than £100m a year in extra security, absenteeism, training of staff and legal bills.