CRM-13986 - Add hateoas-php
CRM-13986 - hateoas-php - Add example HAL link with URL generator
CRM-13986 - Update composer.lock
CRM-13986 - Manage names and slugs for API entities

For REST purposes, we need a way to map entity slugs (URL-style names) to
entity classes. This commit provides the following infrastructure:

 - Civi\API\Registry scans the Doctrine entities and stores the list of slugs in Doctrine's metadata cache.
 - The default slug is based on taking the entity-class-name (without the namespace) and changing the first char to lowercase.
 - @Civi\API\Annotation\Entity provides a way to override these slugs for a particular entity.

For cohesion, this commit also moves Civi\Core\Page\Rest to Civi\API\Page\REST.
Temporarily tweak annotations for REST compatibility
CRM-13986 - REST - Add test case. Add support for filtering collections.
CRM-13986 - REST - Add XML output
CRM-13986 - REST - Misc:

* Implement DELETE
* Change JSON mime type
* Revise error messages