Change architecture

Add implementation to to avoid data provider to know about the report generator.

Currently when you write a data provider that extends ```ReportDataProvider``` class and you return it on ``buildDataProvider()`` method of ``ExcelReportGenerator`` you have to pass ``$this`` to the data provider constructor.

Just like this:

```php
<?php

class MyDataProvider extends ReportDataProvider
{
    ...
}

class MyReportGenerator extends ExcelReportGenerator
{

    .....
    protected function buildDataProvider()
    {
        return new MyDataProvider($this);
    }

}
```

@ronaldcastillo told me that it's motrenco that way because the data provider should not have to know about the generator, so now we can do just like this:

```php
<?php

class MyDataProvider extends ReportDataProvider
{
    ...
}

class MyReportGenerator extends ExcelReportGenerator
{

    .....
    protected function buildDataProvider()
    {
        return new MyDataProvider;
    }

}
```