Improved exception tests

We should make sure the tests fail if an exception that should be thrown
is not thrown.
Merge pull request #257 from GrahamCampbell/2.0-exception-tests

[2.0] Improved Exception Tests
Merge remote-tracking branch 'origin/2.0'
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