Support named factories

@demands thoughts?  I like that it means I can use unionize directly to build models, but it doesn't preclude me from writing a more complicated proxy (like we do in kale).