Flexible layouts through configuration

Adds a new concept to configuration files. The definition of a `template` in the `main` section is gone now and replaced by a more complex `layouts` definition.

This removes all hardcoded information inside the `arethusaGrid` service, as all relevant information can now be expressed directly inside these more complex `layout` objects through configuration files (mentioned as 2. in #398). This allows to add several different Grid layouts to a conf file, for seamless switches between different disseminations of a document. This is a feature that's of course not really used at the moment, but we'll continue to investigate.

`Layout` objects can hold arbitrary information, only a `name` and a `template` property are compulsory. A subsequent PR will work on additional information for sidepanel style layouts to eventually fix #438.

Check out `app/static/configs/layouts/main.json` to see that even a navigator value is redefined - to change chunkSizes when we change layouts. Future issues will be opened to talk about more options that are opened through this.

Also moves away from the `angular-gridster` fork, as the main repository was recently updated to serve our needs. There are still a couple of issues left with it - check upcoming issues, that will reference this PR.


Closes #443