Task/395 pagination queries

### Description
Pagination implemented and with rudimentary unit tests.
URI params 'offset' and 'limit' used.
A third URI param 'details' steers whether 'mongo db count' command is issued on no hits.

Why don't use std::string dirctly the use the c_str() when resolving the colection within the connection->count() call? I mean:

```
std::string colName = getEntitiesCollectionName(tenant);
...
*countP = connection->count(colName.c_str(), bquery);
```

Or even more compact, just:

```
*countP = connection->count(getEntitiesCollectionName(tenant).c_str(), bquery);
```
I think this is the usual way of using collection names in mongoBackend... and you will save the two free() you have later in this function (that can be leak prone if we miss them).