Add interface for ResourceManager

Adding an interface for the resource manager makes things a little nicer for extensions that want to override/replace the resource location process.
this should not be part of the interface IMO. It is part of configuring the instance rather than using it (you could totally create an implementation not based on a list of ResourceLocatorInterface instances