don't allow region adder to add empty regions
bug fix: bad return value check from find_neighbor
to_str function should return a string, not print one
improve cube() function to convert any-dimensional cube to string