report api

Hinges on the creation of `ReportDataSource` classes that basically allow retrieval of report data independently of the current report framework.

```python
config = {
   'startdate': ...,
   'enddate': ...,
   'location_id': 'terminal_location_id',
   'product': '_all'
}
ds = StockOuts(config)
data = ds.get_data(['product', 'stockout_days'])
print data

data = [
   {
      'product': 'A',
      'stockout_days': 0
   },
   {...}
]
```