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`.
The default value is `layercatalog.html` (defined in `src/directives/layercatalog.js`). So yes, it is required. We could decide to use `../src/directives/partials/layercatalog.html` as the default value, but this would be arbitrary. It would mean that we'd choose the default template URL based on the location of the ngeo directive templates relatively to the examples.