Add support for :required option and use it in strict mode

  * coercion doesn't raise if required is set to false and input is nil
  * raise custom error instead of ArgumentError
  * introduce Attribute#required? predicate

fixes #199