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.

Change-Id: I95a95880378fe5c5b6bf988ac484aef3bec41ee5
Reviewed-on: https://gerrit.instructure.com/32230
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
Product-Review: Duane Johnson <duane@instructure.com>