Updated to allow an annotated @SalatFactory method to be used in preference to the case class constructor.
Allows (for example) avoidance of Stringly-typed values being propagated through the application.