Added extra check when setting a zero-rank dataset
Migrated to use dataset interface
Fixed some NPEs in broadcast iterator and added a way to create and get
an output dataset