change some before_create's to before_validation, :on => :create

random tokens need to be filled in before validation, otherwise the
validation is just checking a blank value
strip spaces from urls as they are assigned