William Hamilton (soldier)