Merge branch 'hotfix/59' into develop

Forward port #59
Merge branch 'hotfix/listener-simplification' into develop
Created unit test for resource + metadata map

- Tests that a metadata map can be used to mark embedded objects as
  embedded resources when rendering.
Working metadata maps for resources

- Still have to do collections
Render embedded collections using a metadata map

- Now allows specifying in the metadata map that a particular class
  denotes a collection; also allows setting the resource route to use.
- May need to expand on this to allow passing resource route
  params/options.
Updated TODO
CS fixes

- added docblocks
- ran php-cs-fixer
Updated TODO list
Added factory for MetadataMap

- also modified HalLinks factory to pull MetadataMap and inject it
Apply metadatamap to resources inside collections

- Per @netiul
Moved creation of HalCollections into HalLinks

- new "createCollection()" method, which also calls a new
  "injectSelfLink()" method (copied from the ResourceController; will be
  deprecating it there after resource creation is accomplished)
Moved HalResource creation to HalLinks

- Ported over getIdentifierFromResource() logic into default
  getIdFromResource listener in HalLinks.
- Removed getIdentifierFromResource and injectSelfLink from
  ResourceController
- Created createResource() method in HalLinks, which will create a
  resource from the metadata map, if present, or else use default logic
  to do so.
CS fixes

- trailing whitespace
Documented metadata map usage
Merge branch 'feature/object-resource-map' into develop

Close #64
Merge branch 'hotfix/65' into develop

Forward port #65
Catch all exceptions

- We can actually catch _all_ exceptions at this point, not just
  specific exception types. When passed to an `ApiProblem` constructor,
  the constructor will decide if it implements
  `ProblemExceptionInterface`, and, if so, populate the instance
  appropriately.

  Not catching all exceptions could lead to other errors, and it's best
  to be consistent in error handling in APIs.
Merge branch 'hotfix/exceptions'

Ensure all exceptions are caught.
Merge branch 'hotfix/exceptions' into develop

Ensure all exceptions are caught
Working toolchain

- Ability to build API documentation
- Toolchain for sphinx