Refactor

Refactor so that custom validators don't take settings. Other validators
that don't need to take settings also no longer accept settings in their
constructor.
Refactor more

Refactored Service locator so it takes a collection of things to chain
together and it builds it rather than have repeated code to build each
link if necessary.