India won the Asia Cup for the sixth time after beating hosts Bangladesh by eight wickets.