Add ngeo-layercatalog directive to ngeo core

This PR adds an `ngeo-layercatalog` widget component to ngeo. The `layercatalog` example is modified to use that component rather than implementing its own.

The `ngeo-layercatalog` component is composed of two directives: `ngeo-layercatalog` and `ngeo-layercatalognode`. The latter is used by the former.

An application using `ngeo-layercatalog` is responsible for providing a layer factory function. That function is called by the `ngeo-layercatalognode` directive to get an OpenLayers layer from a tree node.

This layer factory is specified by creating an `ngeoLayercatalogLayerFactory` service in the application. See the `layercatalog` example to see how this is done.

The `ngeo-layercatalog` and `ngeo-layercatalognode` directives use partials (`templateUrl`). There is a default partial for each directive in ngeo. These partials can be overridden in the application, by providing `ngeoLayercatalogTemplateUrl` and/or `ngeoLayercatalognodeTemplateUrl` services.

Also, this work addresses #113, partially at least. For `ngeo.js` a template cache is generated at build time by a Makefile rule. This is based on a Mako template: `templatecache.mako.js`.
Well, I understand your point of view but this directive does not rely at all on this service. At least not directly. So the doc is a bit wrong (and redundant with the node directive doc). If we want to emphasize about this service, perhaps you should reformulate to say that this directive relies on the layercatalognodeDirective which assumes that such a service is defined?