DataSet.append: check for shape agreement

Fixes the Todo in the code. Based on code from @jgrewe
[test] add tests for DataSet.append