Exception refactoring

Fixes #90 
- [x] Create an `Exception` interface
- [x] Refactore existing exceptions and deprecate old ones
- [x] Create new exception to throw instead of the ones from STL or Symfony
- [x] Update tests to use new exception class names (works without that because it's BC :v:)
- [x] Update docblocks with the right version of deprecation
- [x] Update docs
@gnugat we are talking about the line breaking stuff here:

````php
'The given string contains different line breaks,'
.'%d LF (\'\n\', usually found on Unix/Linux systems)'
.'and %d CR+LF (\'\r\n\', usually found on Windows systems)'
````

Instead of:
````php
'The given string contains different line breaks, %d LF (\'\n\', usually found on Unix/Linux systems) and %d CR+LF (\'\r\n\', usually found on Windows systems)'
````

Btw, the current thing is broken as there are missing spaces. So the result will be printed as: `The given string contains different line breaks,%d LF (\'\n\', usually found on Unix/Linux systems)and %d CR+LF (\'\r\n\', usually found on Windows systems)`