Unique names

Implementation for [i275](http://gsd.uwaterloo.ca:8888/question/1130/unique-name-generation).