William O'Neill (soldier)