Scottish ministers have said they will abolish all NHS prescription charges north of the border, leading to accusations of an "apartheid" health service.