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
Yes, this is handling of a promise reject case. Written in brackets because of IE8 is considering 'catch' as a keyword.