Merge branch 'hotfix/14' into develop

Forward port #14
Forward port #15
Merge branch 'hotfix/16' into develop

Forward port #16
First test for new functionality

- Test that a HalResource returned by the Resource object will be used.
Create now allows returning a HalResource from the Resource

- Required making route param of HalResource constructor optional
- Required allowing setting the route and route params on a HalResource
  post-instantiation
Implemented HalResource/Collection returns for fetch*() operations

- Required altering HalCollection to make collection/resource routes
  optoinal in constructor (and to add setters)
- Required altering Resource::fetchAll to also check for HalCollection
  as valid return from listeners
Implemented HalResource/Collection returns for remaining methods
Merge branch 'feature/allow-returning-hal-from-resource' into develop

Addresses part of #5 by allowing the ability to return a HalResource or
HalCollection from a Resource listener
CS fixes

- trailing whitespace
First test/implementation

- Created test case demonstrating intention:
  - trigger a "pre" event with the data provided to the method
  - trigger a "post" event with the data provided to the method, and the
    resource created
Added events for delete.pre/delete.post
Implemented deleteList triggers
Implemented get triggers
Implemented getList triggers
Implemented patch triggers
Implemented update triggers
Implemented replaceList triggers
Added docs detailing controller events
Merge branch 'feature/controller-events' into develop

Fixes #7
Addresses #5 - but the solution is not yet complete
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