Map and LayerGroup layer collection as a reference.

Ensures:
- getLayers() always returns defined and non-null result;
- getLayers() always returns the same object.

Solves:
- cumbersome undefined / null checks in caller code;
- unhandled cases like in Map.addLayer();
- using an obsolete layer collection reference after a setLayers(myNewLayers)
Ex:
  - bindto(someLayers, map.getLayers()) having no more effects;
  - var sync = new Synchronizer(map.getLayers(), ...); sync.syncLayers().
I know. All I'm saying is that not providing a setter for an ol.Object property does not make sense, because you can still use the `set` function to change the property value. In other words not providing a setter does not make the property read-only.