Fix multiple xhr requests

This fixes angular-translate/angular-translate#519. The problem with the current is it only fixes one specific issue with multiple XHR requests. Namely, what happens if you have a preferred language and fallback language.

This fix handles all of the different async loaders, so that resources are only requested once. $translatePartialLoader#deletePart can still handle deleting data.

There is also a test to demonstrate an issue with the partial loader. When the partial loader is used and multiple parts are loaded, if the previously requested parts have not loaded yet, then multiple XHR request are made for each part.

This should also fix #640.