Version 4.0 major rewrite

* The `AbstractCsv` class and the `Writer` are introduced
* The `AbstractCsv`implements the `IteratorAggregate` and the `JsonSerializable` interface
* The `Reader` class and the `Writer` class now extend the `AbstractCsv` class 
* The `Reader` class no longer implements the `ArrayAccess` interface
* The `Reader::fetchOne` method is no longer deprecated
* The `Reader::fetchValue` and the `Reader::getFile` methods are removed
* The `IteratorQuery` trait is introduced
* The `Codec` class, `CsvControlsTrait` and `CsvOutput` traits are removed