Add const keyword, use references, coding style

* Methods which doesn't change an attribute should be set as const.
* Pass arguments as reference to avoid copy.
* Line length: 80
Constructor style
Merge branch 'develop' into fixes/ref-const-style
Exceptions improvements

* use const keyword
* use an enum instead of a string to know the type of the exception
* line length
* remove throw in destructor (was removed with C++11)
* type should not be changed after initialization
* use virtual keyword
Remove unnecessary output
Pass string by reference
Merge branch 'develop' into fixes/ref-const-style
Code style
* Lint now lints examples
* Max line lenght is 120
* Everything lints