feat(module) : use same fallback for module.run when no storage key is s...

...et and not being able to load locale from storage

Closes #739

Added common fallback for case when storage does not have key set and loader is not able to load translations for key from a storage.
Added tests for this case and other cases when bootstrapping angular-translate. Since it is a module.run writing a nice unit tests is a bit hard. Unfortunately, each test case had to set up everything from scratch just to provide different configuration for loading angular-translate. All suggestions how to test it in a better way are welcomed.

Reasons for commit:
Usually developer is able to easily handle cases when translation is not loaded properly. However, that is not a case for bootstrapping of angular-translate and value set from storage.
If server for some reasons removes translation for a locale that a user still keeps in own storage, angular-translate will now fall to preferred language instead of not providing any translations at all.

More here: #739 
Patched plunker from above issue: http://plnkr.co/edit/m2Pon0aFlrsgyHg6Fsds?p=preview
Ah. Thanks. Didn't know that IE8 has problems on that :-).
For others as a reference, linking in http://stackoverflow.com/questions/23105089/angular-q-catch-method-fails-in-ie8 as an explanation.

The basic question is if we continue to support IE8. There will be more issues as well sooner or later :-)