Add option to define factory as static method.

This lets you define a public static function named factory() on the model that will return the factory array.

This is related to #34 as it allows you to actually use closures / callables as values in the array.