I believe the two best types, STAB-wise, are Water and Dark, hitting 308 Pokémon supereffectively, 463 neutrally, and only 7 not very effectively. The best defensive typing is probably either Fire/Steel (weak to 3 types, neutral to 5 types, resistant to 9 types and immune to 1 type) or Steel/Ghost (weak to 4 types, neutral to 2 types, resistant to 9 types, and immune to 3 types).
In other words, the Pokémon with the best offensive typing are Mega Gyarados, Crawdaunt, Sharpedo, Mega Sharpedo, and Greninja. The Pokémon with the best defensive coverage are Aegislash and Heatran.