One lang request only at app load time
Fix indent
Remove ununsed semi-colon
Fix gaLayers.loadForTopic

There were multiple problems:

(a) the translationChangeSuccess listener relied on a "lang" argument. There's no such argument. $translate.uses() should be always be used to get the current language.

(b) the translationChangeSuccess listener used me.currentTopicId to refer to the current topic. It's incorrect. me.currentTopicId is always undefined. This commit fixes it by relying the local currentTopicId variable only.
Small optimization to the topic directive

Do not call setActiveTopic twice if there's not topic set in the permalink.
Make jslint happy

jslint doesn't like variables defined within "for()"
Avoid dereferencing when not necessary
Simplify gaLayers API

The getOlLayerById and getBackgroundLayers functions no longer need to return promises. By listening to gaLayersChange events, users of the gaLayers service can be guaranteed that the layersconfig request has complete when they call getOlLayerById and getBackgroundLayers.
Set an id in ol layers created by gaLayers
Use templateUrl for background layer directive
Use || instead of ternary expression
loadForTopic should return correct promise

It should return the promise returned by the "then" function. Otherwise, there's no guarantee that the user will use the correct layers.
Merge pull request #231 from geoadmin/dev_topiclang

gaLayers refactoring