Here are some other choices:

Dragonite is under the "other" choices? Just saying...and maybe subtract the legendaries/Ubers from it if you are suggesting good HM slave to use, but I understand you just put down a list of pokemon that can learn Fly and Surf.

If you are earlier into the game, say you start over, I suggest catching a Ducklett. You can evolve it into Swanna, to make it a worthwhile pokemon. You can go with the Dragonite if you want, but it is quite a good pokemon to be slapping HMs on. Hydreigon is an alternative choice to Dragonite, because it is almost a remake, (both are very powerful pokemon.) The safest you can go is to pick Swanna/Ducklett.