John Hackett (soldier)