Refactoring, JSDoc, Integration tests

# Refactoring, JSDoc, Integration tests

## What is in ?

### Refactoring

The code has been refactored to something (to me) more readable. Also, for the `has` function, instead of returning `true` in case of a success and an object in case of a failure, the function now throws an exception in case of a failure, with the same object as before summing up the errors that occurred.
Because of the fact we do not return a boolean value anymore but throw an exception, the function has been renamed to `check`.

### Documentation

* The `README.md` file has been updated
* The JSDoc has been generated

### Integration tests

Some integration tests using Mocha have been written. Some tests did already exist, but I could not run those (mostly because of the `function*` syntax). Thus, this section is fully opened to discussion; this Pull Request contains multiple files for testing purpose whereas only one should be enough.

### Makefile & Git hooks

* A Makefile has been written in order to run operations easily.
* A hook for the `git commit` operation has been configured and uses the Makefile. The operations are: tests and documentation generation.

### Dependencies

The `string-format` package has been removed from the dependency list, and the `jsdoc` package has been added to the dev dependency list.