Cleanup permalink generation

Fix permalink generation to not contain various smells. See verbose description in the last commit in this PR.
@dkubb Spree requires ruby `>= 2.1` so we should be fine to use the kwargs. `prefix` is now mandatory, and on 2.1 we have mandatory kwargs.