Cleanup permalink generation

Fix permalink generation to not contain various smells. See verbose description in the last commit in this PR.
This is probably getting too pedantic, but since you access prefix and then length in the initializer, I would tend to use the same order here. The assumption that the most important thing was accessed first, so I would want to specify the most important thing first.

This means I would write this as:

```ruby
include Spree::Core::Permalinks.new(prefix: 'H', length: 11)
```