Default the HashSchema's strict mode to `true` for addtl. security

* When accepting random user input, you want to be as cautious as
  possible. Only accept the values you want to accept
* This will help reduce the chance that malicious user input will
  affect the project.
Add Validation to Hash Schema

* has a `validate?` method, which returns a boolean value indicating
  whether the object provided is valid
* checks that the object provided:
  * is a hash
  * conforms to the strict mode setting
  * has all required properties and all schema properties are valid
* contains an `error` hash, which is used to show every error for
  every property in the schema.
  * the `:base` key is used whenever there is an error with the object
    itself, not a specific property:
    * object not a hash
    * does not conform to strict mode setting
Constantized common Error messages