Allow using Procs for values with Factory args

This allows using procs for values with Factory args. This allows
dynamic defaults with factories, so when a factory builds an
object, it doesn't share the same value as other objects built by
the factory. This is particularly useful when defaulting
associated objects. Using procs helps keep multiple objects
generated from the factory from all sharing the same associated
object.

Closes #74