Allow user to define more weak_words

In user model, just do this to define custom weak words:

def weak_words
  [self.name, self.username, self.pet_name]
end

(Also, I've local-memoized the self.email & self.weak_words calls for efficiency.)