crypto/pbkdf2: reject salt if it's too short, instead of failing

Closes #275.
Merge pull request #276 from grawity/pbkdf2-randsalt

crypto/pbkdf2: generate a new salt if it's too short