minor
Use size() tuple instead of ndims, shape() pointer

- int size() -> int length() (whole element count)
- int *shape -> const tuple &size()
Arrange array allocation to setSize(const tuple &size) function
Clear all setSize() functions except base_array_t::setSize(itemSize, arraySize)
Fix minor
Add similar(array) array constructor