Add a new getSourcePath() method on the AssetInterface

Refactoring - it was a common pattern to get both the sourceRoot and sourcePath,
check if both are set, concatenate them and take the dirname().