Add external schema parsers

This allows the definition of external schema parsers - is a breaking change to the API.
At the moment this is an abstract class - yes it defines an interface, but also defines some methods. 

I'm not a symfony dev - so don't agree that we should just adopt their standards :D - however it does seam to be PSR (https://github.com/php-fig/fig-standards/blob/master/bylaws/002-psr-naming-conventions.md)