Write a series of tests and add checks

- This added extra tests for invalid usage of
  some classes
- This also throws exceptions for all classes when
  they are incorrectly constructed
- phpdocs for the Page constructor has been fixed
  and strings are no longer allowed as a title, you
  must now use a Title object
- Fixed other comments