error functions now take variable input lists with format like printf

I also added location_warning()