DataActionConfig is a trait rather than a case class

When writing Play applications, most controllers are functions returning Action

def index = Action { ... }

If that action is assigned into a val in a case class, it is evaluated eagerly into the config. This usually isn't what is intended, and can cause problems for applications that do any start-up configuration using vars.  The method would be called (and the resulting Action object bound for all time) before Global.onStart has been called to set the variables it might be supposed to use.

By changing it to a trait, we leave homeAction as a function not a fixed value.