Feature/exceptions management

Better exceptions management with use of custom exceptions.
Adding some PHPDoc comments for better IDE integration.
Use of TypeHinting for easier development & IDE integration.
Throws NoResultException if result has no result for better handling by developper.