Cleanup DataSet::create usage in the project

Two major goals are behind this refactoring:
1) idea is to get rid of the two NDSize pointers and replace them with const refs. This has been achieved by adding a conversion to bool operator to NDSize (where false then corresponds to nullptr).
2) Cleanup usage of the DataSet::create overloads. The default case is that we want unlimited dimensions and infer the chunking. So make this the standard, easy accessible case.