[PSR-7] Added `@throws` annotations

- Added `@throws` annotations for all setters or methods accepting arguments
  that must be validated by implementors. In each case,
  `InvalidArgumentException` is specified.
- Made `@params`/`@return`/`@throws` order consistent, and removed empty lines
  between any such annotations for further consistency.
- Moved `@link` annotations before `@params` in all cases.
Merge pull request #345 from weierophinney/hotfix/invalid-arguments

[PSR-7] `@throws` annotations