Fix random "random" collisions during tests.

Use a generator to create guaranteed unique models. Previously, and rather frequently, the title of a random model would match the title of another random model and the test would fail with `AssertionError: True is not false`. Random things in tests is a trap.
Pluralize function name and cleaner listifying of generator objects.
Merge pull request #14 from joncotton/fix_random_fails_in_tests

Fix random fails in tests