Record added/removed files during installation/uninstallation of packages

This PR allows to record added and removed files during installation/installation. They are kept in the deploy strategy which means that they are grouped for each package. 

We can now easily loop the Deploy Entries, get the strategy and do some work based on the added/removed files. An example of what we can do it to make the `.gitignore` support more feature full by supporting globs and also supporting removing entries when uninstalling packages.

I followed the advice given in #154 
I added the `ltrim` as in this method the path had double slashes. The paths in the unit tests were like so: `souredir//app/code/Vendor/Module`. I didn't want to remove the ` . '/' . ` as I wasn't sure `$source` would always be preceded with `/`.