Camila Cabello apologises for "horrible and hurtful" racist Tumblr posts