Put all parameter specific methods into a module
Encapsulates attribute into an anonymous module to invoke attribute creation
Refactors and fixes allowed values for an enum by using coercer

* using virtus' `coercer` argument to set a Proc that checks if the value is one of the allowed enum values
* removes extra attribute from template