Hungarian police fire tear gas and water cannon at several hundred migrants protesting at being unable to cross the border from Serbia.