Adding ability to change query distinct on DataList and DataQuery

Since `setDistinct(true)` is being called on every use of `DataList` via `DataQuery::initialiseQuery()`, this change gives the ability to call `distinct(false)` on a `DataList` (or `DataQuery` directly) to turn that off. This is especially useful in cases where you're dealing with queries to tables with loads of data, as the use of distinct can slow things down considerably.

We can consider removing distinct from being the default, but probably something for master, not 3.1. If we decided to do that, this change would let you enable distinct on-demand.