Created Link class

- Represents a link relation
- Encapsulates the link relation, and the URL. The URL may either be set
  explicitly, or as a combination of route, route parameters, and route
  options (the latter two are optional).
CS fixes
Implemented LinkCollection

- Aggregates and iterates Link objects
- Will be composed into HalResource and HalCollection
  - and JsonRenderer will render them
Made HAL classes LinkCollection-Aware

- Created LinkCollectionAware interface
- Composed LinkCollectionAware into each of HalResource and
  HalCollection
- Tested
Remove route awareness from Resource

- This will only be relevant to link generation, which is aggregated in
  Link now.
Removed Collection Route from HalCollection

- as it becomes a function of the embedded links
- however, added both route options and params as properties, as these
  will be used to generate "self" links on embedded resources.
Add ability to set default resource links
Added ability to generate _links array from Resource/Collection

- Added fromResource(LinkCollectionAwareInterface) to HalLinks plugin
  - iterates over composed LinkCollection, and generates HAL-compliant
    structure
  - href attributes are either pulled from Link URIs or generated from
    route information in the link; createLink() is used in the latter.
Altered ResourceController to set self Link in LinkCollection

- Added injectSelfLink() method; creates "self" relational link,
  injecting id as route param if a HalResource is provided.
- All methods returning a HalResource or HalCollection were modified to
  call injectSelfLink().
All tests are running

- Refactored non/paginated link generation
- Made sure tests reflect current API
- TODO: move collection link injection to an event
CS fixes

- via php-cs-fixer, PSR2 compliance
Move most rendering capabilities into HalLinks helper

- HalLinks now has renderCollection() and renderResource() methods
  - Each takes care of rendering HAL links and embedded resources
  - Was able to DRY up some logic as a result
  - Had to alter HalLinks factory to pull configuration so it can
    aggregate hydrators
  - Had to alter Renderer factory so it no longer aggregates hydrators
- TODO: move ApiProblem rendering into helper
CS fixes

- PSR2 compliance
Updated documentation

- Fixed example demonstrating adding "describedby" link to resources/collections
- Minor fixes throughout
Merge branch 'feature/custom-hal-links' into develop

Fixes #5
Fixes #7