Specify collections

Basic groundwork for https://community.openproject.org/work_packages/16986

This specification deals with collections, another quite fundamental concept that needs specification before it is too late to adapt existing implementations to the changes proposed.

What are the goals?
================

* one specification to rule them all (currently collections are quite diverse regarding their implementation)
* different pagination options
    * no pagination
    * pagination where the client wants to display pages
    * pagination where the client wants it all (e.g. infinite scrolling)
* enough flexibility to allow extensions (e.g. links to filtered variants; read: in the **future**)

What changes with regards to the existing API-Implementation?
==================================================

* there is a set of required properties (currently collections look very different)
* `total` and `count` are now prefix-less (they are not very special at all)
* the `_type` of every collection is `Collection` instead of `pluralOfResourceName`
* the values are stored in `"_embedded": { "elements" }`, not `"_embedded": { "pluralOfResourceName" }`
I did not really define those terms above, but I tried to move the text so that the reader at least roughly knows to what they will refer.

I'd like to keep the table above the example requests and I'd like to keep the examples with their explanations. That is why I had a hard time to move the actual definitions above the table.