Suspect charged over stabbing of British soldier