Buffalo supermarket gunman charged with federal hate crimes