New York City Mayor Bill de Blasio has announced his candidacy for the Democratic nomination for president in 2020.