[#48] Allow Exceptions to provide more detail

- Created ProblemExceptionInterface, which defines 3 methods:
  - getTitle
  - getDescribedBy
  - getAdditionalDetails
- ApiProblem checks if $detail provided to constructor is a
  ProblemExceptionInterface, and, if so, will set the title,
  describedBy, and additionaDetails values, if not present, to the
  values returned by those methods.
- DomainException now implements ProblemExceptionInterface and provides
  setters as well as the getters, allowing you to set this information.
  CreationException, UpdateException, and PatchException all extend
  DomainException already.
[#48] Documented custom exceptions for Problem API
[#48] CS fixes

- per php-cs-fixer
Merge branch 'feature/48' into develop

Close #48