HPCC-9701 Refactor meta calculation into separate properties

This is a fairly big refactoring of the way sort orders etc. are tracked in
the code generator.  Previously the type held some extra information which
was initialised whenever the dataset was created.  This patch changes that
so that the sort order/grouping/distribution is dynamically calculated when
it is required.

This means that when datasets are recreated in transforms (e.g., when binding
functions or when transforming expression graphs) it avoids unnecessary
calculations.  The code is also cleaner since the CHqlMetaInfo class implements
many functions as members which were previously global functions.

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Merge pull request #4711 from ghalliday/issue9701

HPCC-9701 Refactor meta calculation into separate properties

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>