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
Merge branch 'hotfix/exceptions' into develop

Ensure all exceptions are caught
Working toolchain

- Ability to build API documentation
- Toolchain for sphinx
Updated sphinx configuration

- Updated to represent current project
Began basics documentation