Remove duplicate nicknames in generated Swagger documentation

As outlined in Issue 398, the current Swagger documentation constains
a handful of instances where multiple API operations have the same
nicknames. This occurs when multiple routes with the same third path
segment resolve to a single method.

This change fixes the issue by calculating a unique nickname for each
route, and ensuring that duplicate routes are only documented once.