Refactor library's architecture/design

* Move plain old Email class to Parser\EmailParser — this class is now
responsible for parsing emails and creating Email/Fragment objects (see
below);
* Move plain old Fragment class to Parser\FragmentDTO — it holds data to
build Fragment objects;
* Refactor EmailParser code (simplification, more typehints);
* Add (new) Email class that contains a set of Fragment objects, with a
read only API => it is a value object;
* Add (new) Fragment class — it is a value object;
* Refactor tests to fit the new API, however nothing has been broken;
* Update README and Composer config.