Ch4: Rename `hasKeys` to `hasKeysValidator`

- It seems as though there is a de-facto naming
  standard in "Functional Javascript"
  of using nouns for functions which return functions.
  eg. `checker` returns a function, while `checkCommand` returns
  an array.
  If this is correct, it would follow that `hasKeys` would return a
  boolean, while in fact, if returns a validator function.
  Renaming the function to `hasKeysValidator` makes it clear
  that the function returns a validator function.