Use Virtus in strict mode to ensure input is coerced

Ensures attributes are coerced to either the specified type or nil.

As an aside, it would be great if Virtus supported setting the required option on a per model basis, so we didn't have to override `attribute`. Something like `include Virtus.model(strict: true, required: false)`.