Update general design.

Update general class design to use Symfony PropertyAccess as property accessor for elements of the collection.
In this way each element could be a complex structure and access properties to use during the sorting process in a simple and clean way.
Updated Tests.

Now tests are divided in two groups: unit and integration.