Cleanup permalink generation

Fix permalink generation to not contain various smells. See verbose description in the last commit in this PR.
You could probably simplify this down to:

```ruby
def new_candidate(length)
  [prefix, *Array.new(length) { RAND.rand(BASE) }].join
end
```

Or you could use the example code I pasted earlier:

```ruby
'%s%0.*i' % [prefix, length, RAND.rand(BASE ** length)]
```

One advantage of this is that it only executes the random number lookup one time, and then zero-pads it with `String#%` which is an alias for `String#sprintf`.