Hannibal (i. e. 247-183), karthagói hadvezér