Multiple factory definitions preparation
Throw ClassNotFoundException when a class cannot be found when creating Factory instance
Helper methods for getting group and model without group
Combine group attributes and none group when creating factory

When we create a factory with a group name passed in, we combine any
attributes set on the group factory definition with the base factory
(not a group one). This means we can use the group factories to
overwrite the base factory
Test that group definitions are working
Build attributes array before calling attributesFor
Add tests around replacement generators

A
Make sure we are replacing generators in group factories
Change ClassNotFoundException to ModelNotFoundException
Remove duplicate testDefineWithReplacementGenerators
Exception improvements
Typo fixes
Assert that the exception in thrown like in #257
Updated the documentation for the new stuff
Micro-optimizations to the groups feature
Added another test

This defines the behaviour when we ask for a model from a group we
haven't defined definitions for.
Corrected a docblock
Merge pull request #247 from thephpleague/feature/multiple

[2.1] Multiple Factory Definitions