Add a method to access files via virtual names (alias)

it sounds stupid and make for the first moment not realy sense but this pr adds support for virtual filenames :)
We can specify an alias for a file which has maybe the same name but must be "unique" (eva & cabal voices).
so we can flag them with an alias:

example:

filename: 
``` Speech01.mix -> I001.aud ``` as alias ```eva-i001 ```
``` Speech02.mix -> I001.aud ``` as alias ```cab-i001 ```

in my testcase i had modified MixFile.cs and printed the ```Add()``` to debug.log:
```
Added Alias [scores] for [scores.mix]
Added Alias [sidenc01] for [sidenc01.mix]
Added Alias [sidenc02] for [sidenc02.mix]
Added Alias [gmenu] for [gmenu.mix]
Added Alias [e01scd01] for [e01scd01.mix]
Added Alias [e01scd02] for [e01scd02.mix]
Added Alias [maps01] for [maps01.mix]
Added Alias [maps02] for [maps02.mix]
Added Alias [movies01] for [movies01.mix]
Added Alias [movies02] for [movies02.mix]
Added Alias [multi] for [multi.mix]
Added Alias [patch] for [patch.mix]
Added Alias [sidecd01] for [sidecd01.mix]
Added Alias [sidecd02] for [sidecd02.mix]
Added Alias [tibsun] for [tibsun.mix]
Added Alias [cache] for [cache.mix]
Added Alias [conquer] for [conquer.mix]
Added Alias [isosnow] for [isosnow.mix]
Added Alias [isotemp] for [isotemp.mix]
Added Alias [local] for [local.mix]
Added Alias [sidec01] for [sidec01.mix]
Added Alias [sidec02] for [sidec02.mix]
Added Alias [sno] for [sno.mix]
Added Alias [snow] for [snow.mix]
Added Alias [sounds] for [sounds.mix]
Added Alias [speech01] for [speech01.mix]
Added Alias [tem] for [tem.mix]
Added Alias [temperat] for [temperat.mix]
Added Alias [scores01] for [scores01.mix]
Added Alias [expand01] for [expand01.mix]
Added Alias [sounds01] for [sounds01.mix]
Added Alias [e01sc01] for [e01sc01.mix]
Added Alias [e01sc02] for [e01sc02.mix]
Added Alias [e01vox01] for [e01vox01.mix]
Added Alias [e01vox02] for [e01vox02.mix]
Added Alias [ecache01] for [ecache01.mix]
```

As we see we could load all voice files inside ``` (speech01.mix)``` as ```gdi-****``` and all files in ```speech02.mix``` as ````nod-****``` which can result in ```Player.Race + "-I001" ```.

Also we should access tileset related building-SHPs via Aliases :)